Nuxeo Cluster - Load Balancer - Session replication failed
Hi! I have configured apache2.4 http load balancer as :
ProxyPass /nuxeo balancer://sticky-balancer stickysession=JSESSIONID|jsessionid nofailover=On
BalancerMember xxxxxxx.40:8080/nuxeo route=nxworker1
BalancerMember xxxxxxx.41:8080/nuxeo route=nxworker2
On nuxeo instances I have done config as suggested on nuxeo docs at 40: nuxeo.server.jvmRoute=nxworker1 and at 41: nuxeo.server.jvmRoute=nxworker2
When one of instances goes down for ex 40, during a user is connected and working on it, it needed to do login again because session
seems is not replicated for node 41. Attached is screenshot!
Have any body any suggestion?
Question was cross-posted at http://stackoverflow.com/questions/35360782/nuxeo-cluster-load-balancer-session-replication-failed/35362138#35362138. Here is the answer:
That is expected: the session is sticky, not replicated. As stated in the documentation, you will have to authenticate again or not, depending on your configuration and architecture:
The Nuxeo Platform requires all calls to be authenticated. Depending on your architecture, authentication can be stateless (ex: Basic Auth) or stateful (ex: Form + Cookie). Either way, you probably don't want to replay authentication during all calls.
That's why having a session based authentication + session affinity can make sense: you don't have to re-authenticate each time you call the server.
If the session affinity can not be restored, for example because the target server has been shutdown:
- stateless authentication will be automatically replayed (ex: Basic Auth)
- for stateful authentication:
if you have a SSO this will be transparent
if you don't have a SSO, user will have to authenticate again.
Seems like Nuxeo is not (yet) able to manipulate server.xml of Tomcat to add clustering properties. (please, correct me if I'm wrong). Maybe you can try modifiyng server.xml.nxftl adding some extra properties and then setting values in nuxeo.conf. In the meanwhile, take a look at https://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html
Session replication is not very difficult in Tomcat servers. Good luck and come back if you find any solution.