Sunday, April 3, 2022

[SOLVED] Enabling sticky session mode for Apache/Tomcat load balancing

Issue

I am trying to enable sticky sessions in Apache, however it is not working. Below are the changes made by me. Am I missing something?

I do not see any error in the access log, however request from one user is still going to other server.

Step 1: Added below in httpd.conf of load balancer of server1 & server2

<Proxy balancer://marsBalancer>
BalancerMember http://server1fullname:8080  route=server1 
BalancerMember http://server2fullname:8080  route=server2
ProxySet lbmethod=bytraffic
ProxySet stickysession=JSESSIONID
</Proxy>
ProxyPass /marsWAR/ balancer://marsBalancer/marsWAR/

Step 2: Updated below in server.xml

a) server.xml in server1

<Engine name="Catalina" defaultHost="localhost" jvmRoute="server1">    

b) server.xml in server2

<Engine name="Catalina" defaultHost="localhost" jvmRoute="server2">

Solution

Try removing the marsWAR part from the ProxyPass directive :

ProxyPass /marsWAR/ balancer://marsBalancer/

If it still does not work, try specifying the session <id> directly to the ProxyPass directive by adding the following code:

ProxyPass /marsWAR/ balancer://marsBalancer/ stickysession=JSESSIONID


Answered By - KeatsPeeks
Answer Checked By - David Goodson (WPSolving Volunteer)