Sam
Sam

Reputation: 8693

How do I enable sticky load balancing based on session identifiers using apache mod_proxy_balancer

Our proxy configuration (in httpd.conf) to send requests to 2 JBoss instances are given below is based on 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 

How do I enable sticky load balancing based on session identifiers. Am I supposed to set the following flag as part of the Proxy declaration? It doesn't seem to take any effect. How would I debug to see if this is working fine.

SetEnv BALANCER_SESSION_STICKY JSESSIONID

Upvotes: 3

Views: 11670

Answers (1)

mdma
mdma

Reputation: 57707

The PHP sticky sessions article was an interesting read, and that lead me to look for a JBoss specific solution. The key is having the route appended to the session value in the jsessionid param/cookie. JBoss (actually tomcat) has builtin support for this.

Add jvmRoute="" to the config in each server.xml. Then change <attribute name="UseJK">false</attribute>in jboss-service.xml to 'true'.

The whole setup is described in Using mod_proxy with JBoss.

Upvotes: 2

Related Questions