Apache mod_proxy 고정 세션이 가끔 작동하지 않습니다.

Apache mod_proxy 고정 세션이 가끔 작동하지 않습니다.

Apache mod_proxy(mod_ajp)를 사용하여 4개의 Tomcat 로드 밸런싱을 수행하고 있습니다. 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"/>

관련 정보