美文网首页
mod_cluster

mod_cluster

作者: 16325 | 来源:发表于2021-02-20 13:14 被阅读0次
<IfModule manager_module>
 Listen 10.225.66.235:6666
 ManagerBalancerName mycluster
 Maxnode 100
 Maxhost 100
 ProxyPreserveHost on
 <VirtualHost 10.225.66.235:6666>
   <Directory />
    Require all denied
    Require ip 10.5
    Require ip 10.6
    Require ip 10.8
    Require ip 10.220
    Require ip 10
    Require ip 172.24
   </Directory>
   KeepAliveTimeout 300
   MaxKeepAliveRequests 0
ServerAdvertise off
   AdvertiseFrequency 5
   #AdvertiseSecurityKey secret
   #AdvertiseGroup @ADVIP@:23364
   EnableMCPMReceive

   <Location /mod_cluster_manager>
      SetHandler mod_cluster-manager
      AuthType Basic
      AuthName "MCM"
      AuthUserFile /etc/modclusterpassword
      Require user admin
      Require all denied
      Require ip 172
      Require ip 10
      Require ip 122
      Require ip 127.0.0.1
   </Location>

 </VirtualHost>
</IfModule>
  • ManagerBalancerName jboss集群的名称,需要与jboss中的配置一样:

<subsystem xmlns="urn:jboss:domain:modcluster:1.1">
<mod-cluster-config advertise-socket="modcluster" proxy-list="172.18.49.203:6666" balancer="TestCluster" sticky-session="true" connector="ajp">
<dynamic-load-provider>
<load-metric type="busyness"/>
</dynamic-load-provider>
</mod-cluster-config>
</subsystem>

  • Maxnode That is the maximum number of nodes supported by mod_cluster. jboss集群的最大节点数量

  • Maxhost That is the maximum number of hosts (Aliases) supported by mod_cluster. That is also the max number of balancers. 支持的最大balancers数量

  • ProxyPreserveHost 在反向代理中是否支持虚拟主机。如果启用此功能,代理会将用户请求报文中的Host:行发送给后端的服务器。
    打开了ProxyPreserveHost 就可以让Tomcat获取用户请求的Host了

  • KeepAliveTimeout 单个持久连接最大连接时长,超过即断开

  • MaxKeepAliveRequests 服务器单个持久连接最大的请求数,超过即断开

  • ServerAdvertise 广播地址,没搞懂,似乎不需要配置也会自动发现jboss实例,应该是已经配置了proxyList就可以了。

  • EnableMCPMReceive 开启这个proxyList才会生效。

综上,广播这块有两种配置,一种是开启广播ServerAdvertise。然后在jboss里边指定广播地址advertise-socket="modcluster",此socket的地址就是广播地址。
第二种,不开启广播,然后在<subsystem xmlns="urn:jboss:domain:modcluster:1.2">中,使用proxyList指定apache中的IP,也可以完成配置。

  • 补充一个上边没有的。Timeout 在客户端和服务器端TCP三次握手的时候,当客户端发起请求,服务器端响应请求之后,服务器端等待客户端确认的时间,如果客户端在时间内未确认,则服务器将关闭该次TCP握手。

jboss的配置

<subsystem xmlns="urn:jboss:domain:modcluster:1.1">
            <mod-cluster-config advertise-socket="modcluster" proxy-list="172.18.49.203:6666" balancer="TestCluster" sticky-session="true"  connector="ajp">
                <dynamic-load-provider>
                    <load-metric type="busyness"/>
                </dynamic-load-provider>
            </mod-cluster-config>
        </subsystem>
  • 其中balancer属性需要与Apache中的ManagerBalancerName保持一致。
    这个apache中只能配置一个,所以jboss里也只能配置一个。

  • 如果局域网中还有其它多播地址,还需要将以下部分更改为新的多播地址,Apache中相应的AdvertiseGroup也要与其更改为同一地址。
    <socket-binding name="modcluster" port="0" multicast-address="224.0.1.106" multicast-port="23365"/>

注意,这里相当于上边所说的第一种方式。如果使用第二种方式,那么在jboss中设置proxyList即可。

多个多播地址存在的意义? 如果jboss中有个war,上下文是/abc, 那么可以在apache中配置多个虚拟主机,每个虚拟主机设置自己的多播地址,那么这些虚拟主机就都可以访问/abc中的功能。
如果只有一个虚拟主机,那么jboss的上下文不能重复,比如两个jboss实例中存在/abc, /def, 都关联到同一个多播地址,那么访问apache的/abc和/def都可以正常访问到jboss中的应用。

  • sticky-session 默认是true

相关文章

  • mod_cluster not working

    https://docs.jboss.org/mod_cluster/1.3.0/faq.html#d0e5594...

  • mod_cluster

    ManagerBalancerName jboss集群的名称,需要与jboss中的配置一样:

网友评论

      本文标题:mod_cluster

      本文链接:https://www.haomeiwen.com/subject/awjtfltx.html