Apache-2.2
使用 nginx 基於 cookie 的粘性會話
目前,我們使用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>
並使用 jvmRoute 參數
web.xml
將尾部添加到 JSESSIONID cookie:<Engine name="Catalina" defaultHost="localhost" jvmRoute="node-1">
我們希望切換到使用 nginx 作為我們的前端。到目前為止,我還沒有找到任何方法來使用 nginx 執行相同的會話親和性操作。有什麼解決辦法嗎?我們沒有使用會話複製,因此將順序請求發送到同一後端至關重要。
Google建議有一個用於 nginx 的樹外模組來執行此操作。我從未使用過它,因為我認為粘性會話是撒旦的工作,但如果我必須實現它,它將是我使用的第一個選項。