我正在使用apache Web服务器作为apache之后的两个tomcat实例的负载平衡器。当第一个请求转到节点A,而来自同一客户端的第二个请求转到节点B时,我无法访问节点A内的会话变量。这很明显。我在互联网上冲浪,发现启用粘性会话会有所帮助。但是,所有在apache中启用粘性会话的教程都令人困惑。是否有任何简单的分步教程?请帮忙。
来自注释的代码片段:
ProxyPass /balancer-manager ! ProxyPass /balancer://mycluster/ stickysession=JSESSIONID ProxyPassReverse /balancer://mycluster/ <Proxy balancer://mycluster>; BalancerMember ajp://localhost:9001/ route=NodeA1000 retry=10 BalancerMember ajp://localhost:9002/ route=NodeB1000 retry=10 </Proxy>
对于apache httpd来说,要使您的会话绑定到相同的后端,它需要知道哪个cookie保留了会话ID。对于Java,这通常是 JSESSIONID 。
如果您使用ProxyPass指令,请使用
ProxyPass
ProxyPass /example http://backend.example.com stickysession=JSESSIONID
可以在出色的Apache httpd文档中找到。