Назад | Перейти на главную страницу

Прикрепленные сеансы на основе cookie с использованием nginx

В настоящее время мы используем apache2 в качестве внешнего интерфейса и tomcat как серверную часть. Мы используем mod_proxy_balancer и AJP. Также мы используем липкую сессию JSESSIONID cookie:

<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 чтобы добавить хвост в файл cookie JSESSIONID:

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

Мы планируем перейти на использование nginx для нашего интерфейса. Пока я не нашел способа выполнить ту же операцию привязки сеанса с nginx. Есть ли решение для этого? Мы не используем репликацию сеансов, поэтому получение последовательных запросов к одному и тому же бэкэнду имеет решающее значение.

Google предлагает который есть модуль вне дерева для nginx это делает это. Я никогда не использовал его, так как считаю липкие сеансы работой сатаны, но это будет первый вариант, который я бы использовал, если бы мне пришлось его реализовать.