问题:
使用apache的proxy_mod来实现tomcat负载均衡,配置如下,
问题是每次访问http://www.bbs.com/test.jsp的jsessionid都不同,没有实现stickysession
httpd.conf:
- ProxyRequests Off
- <proxy balancer://cluster>
- BalancerMember ajp://www.bbs.com:8009 loadfactor=1 route=s1
- BalancerMember ajp://www.bbs.com:9009 loadfactor=1 route=s2
- </proxy>
httpd-vhosts.conf
- <VirtualHost *:80>
- ServerName www.bbs.com
- ProxyPass / balancer://cluster/ stickysession=JSESSIONID|jsessionid nofailover=On
- ProxyPassReverse / balancer://cluster/
- ErrorLog "logs/my_error.log"
- CustomLog "logs/my_access.log" common
- </VirtualHost>
- tomcat1的server.xml
- <Engine name="Catalina" defaultHost="localhost" jvmRoute="s1">
- tomcat2的server.xml
- <Engine name="Catalina" defaultHost="localhost" jvmRoute="s2">
问题分析:
不懂具体原因
解决办法:
httpd.conf的配置需要放置到httpd-vhosts.conf的虚拟主机配置下。
以下为正确的配置:
<VirtualHost *:80>
ServerName www.a.com
ServerAlias www.a.com
ProxyPass / balancer://proxy/ stickysession=JSESSIONID
ProxyPassReverse / balancer://proxy/
<Proxy balancer://proxy>
BalancerMember http://192.168.1.192:8080/ loadfactor=1 route=tomcat1
BalancerMember http://192.168.1.192:8081/ loadfactor=2 route=tomcat2
</Proxy>
</VirtualHost>
相关推荐
ProxyPass / ajp://localhost:8009/ stickysession=JSESSIONID|jsessionid nofailover=On ProxyPassReverse / ajp://localhost:8009/ ``` 上述配置将所有对"your.domain.com"的请求转发到本地的8009端口(默认...
ProxyPass / balancer://yourcluster stickysession=JSESSIONID|jsessionid nofailover=On ProxyPassReverse / balancer://yourcluster BalancerMember http://localhost:8080 route=tomcat1 BalancerMember...
例如上面的配置中,`stickysession=JSESSIONID|jsessionid`会让用户会话绑定到特定的Tomcat实例,直到会话结束。 8. **故障转移**:当某个Tomcat实例出现故障时,Apache会自动将请求路由到其他健康的实例,确保服务...
ProxySet stickysession=JSESSIONID|jsessionid nofailover=On *:80> ServerName your.domain.com ProxyPass / balancer://mycluster/ ProxyPassReverse / balancer://mycluster/ ``` 描述中提到的博客链接...
- 使用`stickysession`参数(如Apache配置中的`stickysession=JSESSIONID|jsessionid`),让客户端的session与特定的Tomcat实例绑定。 2. **安全性考虑**:确保每个Tomcat实例都位于防火墙后面,只接受来自Apache...
ProxyPass /app balancer://mycluster stickysession=JSESSIONID|jsessionid nofailover=On ProxyPassReverse /app balancer://mycluster BalancerMember http://server1:8080/app route=1 BalancerMember ...
- `stickysession=JSESSIONID`:表示使用JSESSIONID作为会话标识,确保同一用户的请求被发送到同一台后端服务器。 - `lbmethod=byrequests`:选择按请求轮询的方式进行负载均衡。 - `maxattempts=3`:指定当一个请求...
ProxySet stickysession=JSESSIONID|jsessionid nofailover=On ``` - 这里的`BalancerMember`定义了Tomcat集群的成员,`route`参数用于标识每个服务器。 3. 配置Tomcat集群 - 在每台Tomcat服务器的conf/...
这里,`/test` 是Apache将代理的URL路径,`balancer://yyb` 定义了负载均衡器的名称,`stickysession=jsessionid` 表示使用JSESSIONID进行会话保持,`nofailover=On` 表明如果当前服务器无法处理请求,则不尝试转发...
ProxyPass / balancer://mycluster stickysession=JSESSIONID|jsessionid nofailover=On ProxyPassReverse / balancer://mycluster BalancerMember ajp://localhost:8009 route=v1 BalancerMember ajp://...
ProxyPass balancer://liveboscluster/lbmethod=byrequests stickysession=JSESSIONID BalancerMember ajp://serverXXXX1:8009 route=lb1 loadfactor=1 BalancerMember ajp://serverXXXX2:8009 route=lb2 ...
ProxySet stickysession=JSESSIONID|jsessionid nofailover=On *:80> ServerName your.weblogic.domain.com ProxyPass / balancer://mycluster/ ProxyPassReverse / http://your.weblogic.domain.com/ ``...
ProxySet stickysession=JSESSIONID|jsessionid nofailover=On *:80> ServerName your.domain.com ProxyPreserveHost On ProxyPass / balancer://mycluster/ ProxyPassReverse / balancer://mycluster/ ``` ...
ProxySet stickysession=JSESSIONID|jsessionid nofailover=On *:80> ServerName www.example.com ProxyPass / balancer://mycluster/ ProxyPassReverse / balancer://mycluster/ ``` 四、安全与缓存 ...
ProxySet stickysession=JSESSIONID|jsessionid nofailover=On ``` 在这个例子中,`server1.example.com`的权重是2,这意味着它会接收双倍于`server2.example.com`的请求。`stickysession`选项用于保持用户会话在...
ProxySet stickysession=JSESSIONID|balancer ``` 这里,`balancer://mycluster`是负载均衡器的名字,`stickiness=cookie`表示使用cookie来保持会话,`route`属性用于标识不同的Tomcat服务器。 4. **启动...
ProxySet stickysession=JSESSIONID|jsessionid nofailover=On *:80> ServerName example.com ProxyPass / balancer://mycluster/ ProxyPassReverse / balancer://mycluster/ ``` 这里,`BalancerMember`定义...
ProxySet stickysession=JSESSIONID|jsessionid nofailover=On *:80> ServerName example.com ProxyPass / balancer://mycluster/ ProxyPassReverse / balancer://mycluster/ ``` 在这个配置中,"balancer:/...
ProxySet stickysession=JSESSIONID|jsessionid nofailover=On ``` 这段配置创建了一个名为`mycluster`的负载均衡器,包含了两个成员(`server1`和`server2`),它们分别对应两个Tomcat实例。`stickysession`参数...
ProxySet stickysession=JSESSIONID|jsessionid nofailover=On ``` 这里,`BalancerMember`定义了两台后端Tomcat服务器,`route`参数用于标识不同的服务器,`stickysession`则设置了会话粘滞性,使得相同会话的...