You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache反向代理配置无效访问显示默认页面问题咨询

问题排查与修正方案

存在的配置错误/遗漏项

  • 反向代理配置的虚拟主机标签拼写错误
    你写的<VitualHost *:80>拼写错误,缺少字母r,正确应为<VirtualHost *:80>,结束标签<virtualHost>大小写不匹配,Apache对配置标签大小写敏感,错误的标签会导致该段配置完全不生效。
  • 80端口反向代理虚拟主机未配置域名匹配规则
    你没有给80端口的虚拟主机配置ServerName/ServerAlias指定要匹配的域名,导致所有80端口的请求都没有命中你写的这段代理配置,直接匹配到了Apache默认的虚拟主机,所以只会显示默认站点页面,日志也只会打到other_vhosts_access.log中。
  • ProxyPass规则语法错误
    ProxyPass指令的第一个参数是请求的URI路径前缀,不是请求域名,你直接将域名写在第一个参数位的写法不符合语法要求,规则完全不会触发。
  • 未保留原始请求的Host头
    代理请求发往后端11010端口的Apache实例时,默认会将Host头替换为127.0.0.1:11010,后端实例无法通过Host头匹配到对应的项目虚拟主机,就算代理规则生效也会返回后端的默认站点。
  • 缺失必要模块启用(潜在问题)
    反向代理需要依赖mod_proxy、mod_proxy_http两个Apache模块,若未启用会导致代理规则不生效。

正确配置示例

第一步:启用必要模块(以Debian/Ubuntu为例)

a2enmod proxy proxy_http
systemctl restart apache2

如果是CentOS/RHEL系列,需要在Apache配置文件中添加对应模块加载语句。

第二步:修正反向代理配置

推荐按域名拆分虚拟主机,配置更清晰不易出错:

# 处理project1.john.test的代理
<VirtualHost *:80>
    ServerName project1.john.test
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:11010/
    ProxyPassReverse / http://127.0.0.1:11010/
</VirtualHost>

# 处理project2.john.test的代理
<VirtualHost *:80>
    ServerName project2.john.test
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:11010/
    ProxyPassReverse / http://127.0.0.1:11010/
</VirtualHost>

配置修改完成后执行apache2ctl configtest验证语法无错误,再重载Apache服务即可生效。

内容的提问来源于stack exchange,提问作者ScrawnyYawny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:36:00