我需要代理到我无法控制的 Web 服务器。问题是 Web 服务器在同一个 IP 上托管多个域和子域。这意味着当我使用 apache 代理时,我将看到默认的 apache 页面。而不是子域的指定 vhost 页面。我需要查看当前子域,我认为它位于 Vhost 中(与浏览它的效果相同)
这是我目前正在使用的
ProxyPreserveHost 开启
ProxyPass / http://sub.myweb.com:80/
ProxyPassReverse / http://sub.myweb.com:80/
ServerName localhost
但当我这样做时,它只会显示标准 Apache 工作页面。而不是子域名页面。
希望你们能帮助我!
答案1
ProxyPreserveHost 指令
启用后,此选项将把传入请求的 Host: 行传递到代理主机,而不是 ProxyPass 行中指定的主机名。
此选项通常应关闭。它最适用于特殊配置,如基于代理批量名称的虚拟主机,其中原始主机标头需要由后端服务器评估。
http://httpd.apache.org/docs/2.2/mod/mod_proxy.html
也许你应该把它关掉?