目前,我在Apache httpd.conf文件中配置了以下ProxyPass。
目标是将http://myurl.com上的一个Proxypass: port1 / mypath添加到一个余额组,然后将任何其他Proxypass转到http://myurl.com: port2 / mypath到任何其他余额组。
这是我目前的代码,它只能显示基于/ mypath的工作,并且没有任何后续URL。问题是我的两个/ mypath是相同的,只是URL中的port1和port2不同。
我目前正在侦听上面在Apache中定义的Port1和Port2,但我目前无法区分是否有人在myurl.com:port1上进入,因为/ mypath会将其定向到余额管理器中的Group1或Group2两者都是一样的。
<IfModule proxy_module>
ProxyPass /mypath balancer://Group1/ stickysession=JSESSIONID|jsessionid
ProxyPass /mypath balancer://Group2/ stickysession=JSESSIONID|jsessionid
<Proxy balancer://Group1>
BalancerMember ajp://myurl.com:portX/mypath route=TC01
</Proxy>
<Proxy balancer://Group2>
BalancerMember ajp://myurl.com:portY/mypath route=TC01
</Proxy>
</IfModule>
以下不起作用,但这基本上就是我要做的事情:
<IfModule proxy_module>
ProxyPass http://myurl.com:port1/mypath balancer://Group1/ stickysession=JSESSIONID|jsessionid
ProxyPass http://myurl.com:port2/mypath balancer://Group2/ stickysession=JSESSIONID|jsessionid
<Proxy balancer://Group1>
BalancerMember ajp://myurl.com:portX/mypath route=TC01
</Proxy>
<Proxy balancer://Group2>
BalancerMember ajp://myurl.com:portY/mypath route=TC01
</Proxy>
</IfModule>
答案 0 :(得分:0)
由于在ProxyPass部分内无法发生<If>
,因此您可能会将配置拆分为两个VirtualHost:
<VirtualHost *:port1>
ServerName myurl.com
<Proxy balancer://Group1>
BalancerMember ajp://myurl.com:portX/mypath route=TC01
</Proxy>
ProxyPass /mypath balancer://Group1/ stickysession=JSESSIONID|jsessionid
</VirtualHost>
<VirtualHost *:port2>
ServerName myurl.com
<Proxy balancer://Group2>
BalancerMember ajp://myurl.com:portY/mypath route=TC01
</Proxy>
ProxyPass /mypath balancer://Group2/ stickysession=JSESSIONID|jsessionid
</VirtualHost>