我正在尝试设置两个Apache ProxyPass规则以指向不同的Nexus服务器。我想要的是:
http://mainserver/nexus
- > http://server1:8080/nexus
和
http://mainserver/nexus-pro
- > http://server2:8081/nexus
我已将其设置为使用我们的原始服务器,但添加第二个规则会导致请求nexus-pro通过/ nexus重定向到主apache服务器,然后将其转发到错误的服务器上,因此:
http://mainserver/nexus-pro
- > http://mainserver/nexus
- > http://server1:8080/nexus
我想这是Nexus正在做的事情,但我并没有真正控制它。
这是我当前的Apache配置,我需要更改什么?
ProxyPass /nexus http://server1:8080/nexus
ProxyPassReverse /nexus http://server1:8080/nexus
ProxyPass /nexus-pro http://server2:8081/nexus
ProxyPassReverse /nexus-pro http://server2:8081/nexus
ProxyPreserveHost On
答案 0 :(得分:1)
在给定的部分中,Apache httpd配置按照它们在配置中出现的顺序进行处理。如果转置这两个定义,则更明确的/ nexus-pro将覆盖/ nexus定义。
ProxyPass /nexus-pro http://server2:8081/nexus
ProxyPassReverse /nexus-pro http://server2:8081/nexus
ProxyPass /nexus http://server1:8080/nexus
ProxyPassReverse /nexus http://server1:8080/nexus
ProxyPreserveHost On
阅读http://httpd.apache.org/docs/current/sections.html#merging了解详情。
答案 1 :(得分:0)
您可以尝试以下两行进行测试:
ProxyPass /example-ip http://www.toolsvoid.com/what-is-my-ip-address
ProxyPassReverse /example-ip http://www.toolsvoid.com/what-is-my-ip-address
ProxyPass /example http://www.example.com/
ProxyPassReverse /example http://www.example.com/