Apache mod_proxy 粘性会话偶尔不起作用

Apache mod_proxy 粘性会话偶尔不起作用

我们有四台 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"/>

相关内容