В настоящее время мы используем 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 это делает это. Я никогда не использовал его, так как считаю липкие сеансы работой сатаны, но это будет первый вариант, который я бы использовал, если бы мне пришлось его реализовать.