我有1个mod_cluster(1.3.0)和2个JBoss(6.3.3)的设置。我正在尝试使用stickysession,但我无法在响应中看到cookie,并且请求由不同的节点提供。
使用默认的mod_cluster配置(使用我的IP)
<IfModule manager_module>
Listen 156.24.221.149:6666
ManagerBalancerName mycluster
<VirtualHost 156.24.221.149:6666>
<Location />
Require ip 156.24
</Location>
KeepAliveTimeout 300
MaxKeepAliveRequests 0
#ServerAdvertise on http://@IP@:6666
AdvertiseFrequency 5
#AdvertiseSecurityKey secret
#AdvertiseGroup @ADVIP@:23364
EnableMCPMReceive
</VirtualHost>
<Location /mod_cluster_manager>
SetHandler mod_cluster-manager
Require ip 156.24
</Location>
</IfModule>
我也尝试使用ProxyPass但是根据这个响应(Sticky session not working with multiple apache vhosts and multiple JBoss 7.2 server-groups),它现在是多余的,粘性应该是默认行为。
编辑#2:不再使用此虚拟主机定义 ServerName dar.com
# ProxyPass / balancer://mycluster stickysession=JSESSIONID
# ProxyPassReverse / balancer://mycluster
# ProxyPreserveHost On
ErrorLog "logs/vhost1_error.log"
CustomLog "logs/vhost1_access.log" common
</VirtualHost>
没有更改JBoss配置,只是运行standalone-ha.xml
有关如何解决/调试此问题的任何建议?
感谢。
编辑:添加了mod_cluster快照。为了记录,我不得不在虚拟主机定义之外的httpd.conf文件中使用mod_cluster配置(否则我无法访问该资源)。
答案 0 :(得分:0)
我已经使这个适用于另一个场景(域模式下的wildfly10),但它将是相同的配置。
参考:Modcluster 1.3.0 with Wildfly 10.1.0
使用此:
<VirtualHost *:80>
ServerName dar.com
ProxyPass / balancer://mycluster stickysession=JSESSIONID|jsessionid nofailover=On
ProxyPassReverse / balancer://mycluster
ProxyPreserveHost On
ErrorLog "logs/vhost1_error.log"
CustomLog "logs/vhost1_access.log" common
</VirtualHost>
然后,当您在浏览器上访问“dar.com”时,会话将“坚持”。