
4 台の Tomcat を Apache mod_proxy (mod_ajp) で負荷分散しています。mod_proxy は、lbmethod=byrequests および sticky_session が有効になるように次のように構成されています。しかし、Apache がスティッキー セッションを尊重していないことが時々あります。つまり、Apache は Tomcat 1 が受信するはずのリクエストを Tomcat 2 に送信しているため、ユーザーは認証を失っています。mod_proxy は常にスティッキー セッションを尊重しますか。尊重しない場合は、どのようなシナリオでスティッキー セッション設定が無視されますか。
アップデート:
httpd.conf のプロキシ設定
<Proxy balancer://app-lb>
BalancerMember ajp://10.**.**.**:5009/app min=1 max=300 route=r1 loadfactor=1 timeout=300 KeepAlive=On
BalancerMember ajp://10.**.**.**:5010/app min=1 max=300 route=r2 loadfactor=1 timeout=300 KeepAlive=On
BalancerMember ajp://10.**.**.**:5011/app min=1 max=300 route=r3 loadfactor=1 timeout=300 KeepAlive=On
BalancerMember ajp://10.**.**.**:5012/app min=1 max=300 route=r4 loadfactor=1 timeout=300 KeepAlive=On
ProxySet lbmethod=byrequests
</Proxy>
ProxyPass /app balancer://app-lb stickysession=JSESSIONID
server.xml のコネクタ構成
<Connector port="5011" protocol="org.apache.coyote.ajp.AjpNioProtocol" keepAliveTimeout="30000" connectionTimeout="30000" redirectPort="8443" maxPostSize="10485760"/>