继上次使用mod_jk进行了Apache+JBoss集群配置之后,由于JBoss5.1启动过于缓慢,所以开始尝试使用最新的WildFly8.1进行配置(WildFly就是JBoss,在JBoss7之后改名)。
系统环境:
Windows 7 SP1(Windows Server 2003已测试,WildFly会有未知问题)
软件环境:
JDK 7+(一定要使用7以上,否则WildFly不支持)
WildFly 8.1.0(http://wildfly.org/downloads/)
mod_cluster 1.2.6(http://mod-cluster.jboss.org/downloads/1-2-6-Final-bin)
注意:mod_cluster有两个windows httpd+ssl的版本下载,对应32位和64位
一、进行WildFly的domain模式配置
这里使用两个服务器节点进行配置:
master:192.168.0.10;
slave1:192.168.0.11(同理可以配置多个slave)
1、分别在两台服务器上解压WildFly 8.1.0;
2、master配置(以下未说明文件夹的xml均在domain/configuration下)
(1)修改domain.xml文件的<server-groups>节点:
进行服务器集群的服务器组设置。
注意:这里的profile和socket-binding-group配置,都使用full-ha模式(后期使用mod_cluster需要该模式)。
<server-groups>
<!-- 配置服务器组 -->
<server-group name="main-server-group" profile="full-ha">
<jvm name="default">
<heap size="64m" max-size="512m"/>
</jvm>
<socket-binding-group ref="full-ha-sockets"/>
</server-group>
</server-groups>
(2)修改domain.xml文件的<cluster-password>节点:
注意:这里有两种修改方式,方式一是设置用户名和密码(用于集群间的通信安全),方式二是禁用掉安全策略。
<!-- <cluster-user>jms-user</cluster-user>
<cluster-password>jms-pass</cluster-password> -->
<security-enabled>false</security-enabled>
(3)修改host.xml文件的<interfaces>节点
替换所有的127.0.0.1为master的192.168.0.10。
<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:192.168.0.10}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:192.168.0.10}"/>
</interface>
<interface name="unsecure">
<!-- Used for IIOP sockets in the standard configuration.
To secure JacORB you need to setup SSL -->
<inet-address value="${jboss.bind.address.unsecure:192.168.0.10}"/>
</interface>
</interfaces>
(4)修改host.xml文件的<servers>节点:
进行master中服务器实例的设置。
注意:group即为domain.xml中声明的服务器组,这里的group必须是在domain.xml文件中出现过的。
<servers>
<server name="master-one" group="main-server-group" auto-start="true">
<socket-bindings port-offset="0"/>
</server>
<server name="master-two" group="main-server-group" auto-start="true">
<socket-bindings port-offset="100"/>
</server>
</servers>
(5)使用bin/add-user.bat添加管理员账号:
添加一个用户,用户名为master,密码为123123。设置的最后阶段会询问“Is this new user going to be used for one AS process to connect to another AS process?”这里选no即可。
注意:也可以使用其他名字的用户。
2、slave1配置(以下未说明文件夹的xml均在domain/configuration下)
(1)修改domain.xml文件的<server-groups>节点:
删除该配置中的全部服务器组,将该节点变为空节点即可。
<server-groups />
(2)修改domain.xml文件的<cluster-password>节点:
这里的配置和master一致即可。
<!-- <cluster-user>jms-user</cluster-user>
<cluster-password>jms-pass</cluster-password> -->
<security-enabled>false</security-enabled>
(3)备份原host.xml,复制一份host-slave.xml重命名为host.xml。
(4)修改新host.xml文件的<domain-controller>节点:
这里设置master地址192.168.0.10。
<domain-controller>
<remote host="${jboss.domain.master.address:192.168.0.10}" ... />
</domain-controller>
(5)修改新host.xml文件的<interfaces>节点:
替换所有的127.0.0.1为slave1的192.168.0.11。
<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:192.168.0.11}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:192.168.0.11}"/>
</interface>
<interface name="unsecure">
<!-- Used for IIOP sockets in the standard configuration.
To secure JacORB you need to setup SSL -->
<inet-address value="${jboss.bind.address.unsecure:192.168.0.11}"/>
</interface>
</interfaces>
(6)修改新host.xml文件的<servers>节点:
进行slave1中服务器实例的设置。
<servers>
<server name="slave1-one" group="main-server-group" auto-start="true">
<socket-bindings port-offset="0"/>
</server>
<server name="slave1-two" group="main-server-group" auto-start="true">
<socket-bindings port-offset="1"/>
</server>
</servers>
(7)使用master的bin/add-user.bat为slave1添加账号:
添加一个用户,用户名为slave1,密码为123123。最后的询问选择yes,之后便会出现一行文字,其中包括一段xml,类似<secret value="MTIzMTIz" />,需要记下来。
注意:该用户在master上。
(8)修改host.xml文件的<host>节点:
加入一个属性name="slave1"(这个name必须和上一步在master中创建的slave1的用户名一致)。
<host name="slave1" xmlns="urn:jboss:domain:2.1">
(9)修改host.xml文件的<server-identities>节点:
修改连接master的验证设置(添加slave1的用户时的xml)。
<server-identities>
<secret value="MTIzMTIz" />
</server-identities>
3、按照上述配置后,依次在master和slave1中,使用bin/domain.bat启动服务器。待全部启动后,访问http://192.168.0.10:9990/,输入master用户名和密码,进入界面,即可查看服务器的运行状况。
二、进行mod_cluster的集群和负载均衡设置
1、在master服务器上解压mod_cluster,运行bin/installconf.bat,生成默认的配置文件;
2、修改conf/httpd.conf文件:
(1)Listen 8000修改为Listen 80(监听80端口)
(2)#ServerName localhost:8000修改为ServerName 192.168.0.10:80(解除注释,修改为master地址)
(3)修改最下方的<IfModule manager_module>节点(修改地址和访问限制):
<IfModule manager_module>
Listen 192.168.0.10:6666
ManagerBalancerName mycluster
<VirtualHost 192.168.0.10:6666>
<Location />
Order deny,allow
Deny from all
Allow from all
</Location>
KeepAliveTimeout 300
MaxKeepAliveRequests 0
AdvertiseFrequency 5
EnableMCPMReceive
<Location /mod_cluster_manager>
SetHandler mod_cluster-manager
Order deny,allow
Deny from all
Allow from all
</Location>
</VirtualHost>
</IfModule>
3、依次启动mod_cluster的httpd服务器,master服务器的domain.bat,slave1服务器的domain.bat,访问http://192.168.0.10:6666/mod_cluster_manager即可看到集群的状态。