web-dev-qa-db-ja.com

nginxを使用したCookieに基づくスティッキーセッション

現在、フロントエンドとしてApache2を使用し、バックエンドとしてTomcatを使用しています。 mod_proxy_balancerとAJPを使用しています。また、JSESSIONIDcookieによる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パラメータを使用して、JSESSIONIDCookieにテールを追加します。

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

フロントエンドにnginxを使用するように切り替えようとしています。これまでのところ、nginxで同じセッションアフィニティ操作を実行する方法は見つかりませんでした。これに対する解決策はありますか?セッションレプリケーションを使用していないため、同じバックエンドへのシーケンシャルリクエストを取得することが重要です。

2
Slezhuk

Googleが提案 それ nginx用のツリー外モジュールがあります これを行います。スティッキーセッションは悪魔の仕事だと思っているので、私はそれを使ったことがありませんが、それを実装する必要がある場合に使用する最初のオプションになります。

4
womble