我的默认站点配置中有以下内容:
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
ProxyPass /test http://10.0.0.100:8080/test
ProxyPassReverse /test http://10.0.0.100:8080/test
</VirtualHost>
我为不同的应用程序设置了不同的服务器,但希望它们对最终用户来说就像一个站点。我定义的任何一个 proxypass 定义在单独使用时都可以正常工作,但是当两者都取消注释(如上所示)时,转到 /test 只会尝试打开 127.0.0.1/test
我是否犯了错误,或者有更好的解决方案?
答案1
根据Apache 文档“按照配置的顺序检查已配置的 ProxyPass 和 ProxyPassMatch 规则。第一个匹配的规则获胜。”
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass /test http://10.0.0.100:8080/test
ProxyPassReverse /test http://10.0.0.100:8080/test
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>