使用 apache proxypass 根据路径指向不同的服务器

使用 apache proxypass 根据路径指向不同的服务器

我的默认站点配置中有以下内容:

<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>

相关内容