我正在尝试在Apache中启用粘性会话,但是它不起作用。以下是我所做的更改。我想念什么吗?

我在访问日志中没有看到任何错误,但是一个用户的请求仍在转到另一台服务器。

步骤1:在server1和server2的负载均衡器的httpd.conf中添加以下内容

<Proxy balancer://marsBalancer>
BalancerMember http://server1fullname:8080  route=server1
BalancerMember http://server2fullname:8080  route=server2
ProxySet lbmethod=bytraffic
ProxySet stickysession=JSESSIONID
</Proxy>
ProxyPass /marsWAR/ balancer://marsBalancer/marsWAR/


步骤2:在server.xml中更新如下

a)server1中的server.xml

<Engine name="Catalina" defaultHost="localhost" jvmRoute="server1">


b)server2中的server.xml

<Engine name="Catalina" defaultHost="localhost" jvmRoute="server2">

最佳答案

尝试从ProxyPass指令中删除marsWAR部分:

ProxyPass /marsWAR/ balancer://marsBalancer/


如果仍然不起作用,请尝试通过添加以下代码直接向ProxyPass指令指定会话<id>

ProxyPass /marsWAR/ balancer://marsBalancer/ stickysession=JSESSIONID

09-05 21:02