一尘不染

与Apache Web服务器和tomcat服务器的粘性会话

tomcat

我正在使用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>

阅读 218

收藏
2020-06-16

共1个答案

一尘不染

对于apache httpd来说,要使您的会话绑定到相同的后端,它需要知道哪个cookie保留了会话ID。对于Java,这通常是 JSESSIONID

如果您使用ProxyPass指令,请使用

ProxyPass /example http://backend.example.com stickysession=JSESSIONID

可以在出色的Apache
httpd文档中找到

2020-06-16