2016-12-05 68 views
0

目前,我在我的Apache httpd.conf文件中配置了以下ProxyPass。Apache 2.4 - 基於完整url而不是跟蹤路徑配置ProxyPass

的目標是有一個PROXYPASS上http://myurl.com端口1/mypath中一個平衡組,然後有其他任何PROXYPASS去http://myurl.com端口2/mypath中的任何附加的平衡組。

這是我目前的代碼,它只顯示基於/ mypath的作品,並且沒有後續URL。問題是我的兩個/ mypath是相同的,只有URL中的port1和port2不同。

我目前正在監聽上面在Apache中定義的Port1和Port2,但我目前無法區分在myurl.com:port1中進入的用戶是否會被引導至餘額管理器中的Group1或Group2,因爲/兩者的mypath都一樣。

<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

由於ProxyPass不能在<If>部分出現,好像你只剩下兩個VirtualHost分裂配置s:

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

我擡頭看VirtualHost並希望有另一種方式,但它似乎確實是最好的方式! 此解決方案爲我工作,感謝您的幫助! – notagoodcoder