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"/>

相關內容