基于cookie的粘性会话使用nginx

目前,我们使用apache2作为前端,而tomcat作为后端。 我们正在使用mod_proxy_balancer和AJP。 另外,我们使用JSESSIONID cookie的stickysession:

 <Proxy balancer://backend> BalancerMember ajp://127.0.0.1:8008 min=10 max=100 ping=5 connectiontimeout=40 ttl=60 retry=20 route=node-1 BalancerMember ajp://127.0.0.1:8009 min=10 max=100 ping=5 connectiontimeout=40 ttl=60 retry=20 route=node-2 ProxySet lbmethod=byrequests timeout=30 ProxySet stickysession=JSESSIONID|jsessionid nofailover=Off </Proxy> 

并使用web.xml jvmRoute参数将尾部添加到JSESSIONID Cookie:

 <Engine name="Catalina" defaultHost="localhost" jvmRoute="node-1"> 

我们正在寻求切换到我们的前端使用nginx。 到目前为止,我还没有find任何方法来执行与nginx相同的会话亲缘关系操作。 有没有解决scheme? 我们不使用会话复制,因此将相继的请求发送到同一个后端是至关重要的。

Googlebuild议 nginx有一个out-of-tree模块 。 我从来没有用过它,因为我认为粘滞的会议是撒旦的工作,但如果我必须实施它,这将是我使用的第一个选项。