1

我有 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,但根据这个响应(粘性会话不使用多个 apache vhosts 和多个 JBoss 7.2 服务器组),它现在是多余的,粘性应该是默认行为。

编辑#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 配置(否则我无法访问该资源)。 mod_cluster 配置

4

1 回答 1

0

我已经使它适用于另一种场景(域模式下的wildfly10),但是它将是相同的配置。

参考:Modcluster 1.3.0 和 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”时,会话将被“卡住”。

于 2018-02-09T01:42:48.610 回答