<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集群的最大節(jié)點數(shù)量
Maxhost That is the maximum number of hosts (Aliases) supported by mod_cluster. That is also the max number of balancers. 支持的最大balancers數(shù)量
ProxyPreserveHost 在反向代理中是否支持虛擬主機。如果啟用此功能酬凳,代理會將用戶請求報文中的Host:行發(fā)送給后端的服務(wù)器谋竖。
打開了ProxyPreserveHost 就可以讓Tomcat獲取用戶請求的Host了KeepAliveTimeout 單個持久連接最大連接時長红柱,超過即斷開
MaxKeepAliveRequests 服務(wù)器單個持久連接最大的請求數(shù)承匣,超過即斷開
ServerAdvertise 廣播地址,沒搞懂锤悄,似乎不需要配置也會自動發(fā)現(xiàn)jboss實例韧骗,應(yīng)該是已經(jīng)配置了proxyList就可以了。
EnableMCPMReceive 開啟這個proxyList才會生效零聚。
綜上袍暴,廣播這塊有兩種配置,一種是開啟廣播ServerAdvertise隶症。然后在jboss里邊指定廣播地址advertise-socket="modcluster"政模,此socket的地址就是廣播地址。
第二種蚂会,不開啟廣播淋样,然后在<subsystem xmlns="urn:jboss:domain:modcluster:1.2">中,使用proxyList指定apache中的IP胁住,也可以完成配置趁猴。
- 補充一個上邊沒有的。Timeout 在客戶端和服務(wù)器端TCP三次握手的時候彪见,當客戶端發(fā)起請求儡司,服務(wù)器端響應(yīng)請求之后,服務(wù)器端等待客戶端確認的時間企巢,如果客戶端在時間內(nèi)未確認枫慷,則服務(wù)器將關(guān)閉該次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里也只能配置一個。如果局域網(wǎng)中還有其它多播地址笋婿,還需要將以下部分更改為新的多播地址誉裆,Apache中相應(yīng)的AdvertiseGroup也要與其更改為同一地址。
<socket-binding name="modcluster" port="0" multicast-address="224.0.1.106" multicast-port="23365"/>
注意缸濒,這里相當于上邊所說的第一種方式足丢。如果使用第二種方式,那么在jboss中設(shè)置proxyList即可庇配。
多個多播地址存在的意義斩跌? 如果jboss中有個war,上下文是/abc捞慌, 那么可以在apache中配置多個虛擬主機耀鸦,每個虛擬主機設(shè)置自己的多播地址,那么這些虛擬主機就都可以訪問/abc中的功能。
如果只有一個虛擬主機袖订,那么jboss的上下文不能重復氮帐,比如兩個jboss實例中存在/abc, /def, 都關(guān)聯(lián)到同一個多播地址洛姑,那么訪問apache的/abc和/def都可以正常訪問到j(luò)boss中的應(yīng)用上沐。
- sticky-session 默認是true