2010-07-06 53 views
3

我們的代理配置(在httpd.conf)將請求發送到下面給出2種JBoss的情況下,基於mod_proxy_balancer如何啓用粘性負載均衡基於會話標識符使用Apache mod_proxy_balancer的

<Proxy balancer://mycluster> 
Allow from all 
BalancerMember http://192.168.1.2:9080 
BalancerMember http://192.168.1.2:8080 
</Proxy> 

ProxyPass /app balancer://mycluster/app 
ProxyPassReverse /app http://192.168.1.2:9080/app 
ProxyPassReverse /app http://192.168.1.2:8080/app 

我如何基於會話標識符啓用粘性負載均衡。我應該將以下標誌設置爲代理聲明的一部分嗎?它似乎沒有任何影響。我將如何調試,看看這是否正常工作。

SETENV BALANCER_SESSION_STICKY JSESSIONID

回答

2

PHP的粘性會話文章是一個有趣的閱讀,並導致我去尋找一個JBoss具體的解決方案。關鍵是將路由附加到jsessionid param/cookie中的會話值。 JBoss(實際上是tomcat)有內置的支持。

將jvmRoute =「」添加到每個server.xml中的配置中。然後將jboss-service.xml中的<attribute name="UseJK">false</attribute>更改爲'true'。

整個設置在Using mod_proxy with JBoss中描述。