JBoss AS7.1.1+mod_cluster (Apache)集群配置
系统环境:
Windows 7 或者Windows XP
软件环境:
JDK 6+
Jboss7.1.1
Apache http server(Apache2.2.25)
mod_cluster 1.2.0(http://mod-cluster.jboss.org/downloads/1-2-0-Final-bin)
注意:mod_cluster有两个windows httpd+ssl的版本下载,对应32位和64位
这里使用三个服务器节点进行配置(可以合并为两台PC):
master:192.168.0.10;
slave1:192.168.0.11(同理可以配置多个slave)
mod_cluster:192.168.0.12
一、进行mod_cluster的集群和负载均衡设置
1、安装apache2.2.25
1、在master服务器上解压mod_cluster,运行bin/installconf.bat,生成默认的配置文件;
2、修改conf/httpd.conf文件:
(1)Listen 8000修改为Listen 192.168.0.12:80(监听80端口)
(2)#ServerName localhost:8000修改为ServerName 192.168.0.12:80(解除注释,修改为master地址)
(3)在apache下的conf目录下新建文件jboss_mod.conf,增加以下内容:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule slotmem_module modules/mod_slotmem.so
LoadModule manager_module modules/mod_manager.so
LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
LoadModule advertise_module modules/mod_advertise.so
<IfModule manager_module>
Listen 192.168.0.12:6666
<VirtualHost 192.168.0.12:6666>
<Location />
#Order deny,allow
#Deny from all
Order allow,deny
Allow from all
</Location>
KeepAliveTimeout 60
MaxKeepAliveRequests 0
EnableMCPMReceive On
AdvertiseFrequency 5
ManagerBalancerName modcluster
ServerAdvertise On
AllowDisplay On
<Location /mod_cluster_manager>
SetHandler mod_cluster-manager
Order deny,allow
#Deny from all
Allow from all
</Location>
</VirtualHost>
</IfModule>
3、重新启动apache服务器, 访问http://192.168.0.12:6666/mod_cluster_manager即可看到:
二、进行Jboss 7.1.1的domain模式配置
这里使用两个服务器节点进行配置:
master:192.168.0.10;
slave1:192.168.0.11(同理可以配置多个slave)
1、分别在两台服务器上解压Jboss 7.1.1;
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-password>password</cluster-password>
修改domain.xml文件的profiles 名为full-ha的mod-cluster-config节点,增加proxy-list参数:
<subsystem xmlns="urn:jboss:domain:modcluster:1.0">
<mod-cluster-config advertise-socket="modcluster" proxy-list="192.168.0.12:6666">
此处的192.168.0.11:6666是mod_cluster机器的IP和端口号,这样可以将master集群到mod_cluster上;
修改domain.xml文件的profiles 名为full-ha的 default-virtual-server节点,增加instance-id(一定要加这个参数)参数:
<subsystem xmlns="urn:jboss:domain:web:1.1"
default-virtual-server="default-host"
instance-id="${jboss.node.name}"
native="false">
(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>
其实127.0.0.1也可以不更改,保持原样,但是需要用命令行启动,在bin目录下执行命令:domain.bat -b 192.168.0.11 -bmanagement 192.168.0.11
(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。有yes/no时都选yes
注意:也可以使用其他名字的用户。
2、slave1配置(以下未说明文件夹的xml均在domain/configuration下)
(1)修改domain.xml文件的<server-groups>节点:
删除该配置中的全部服务器组,将该节点变为空节点即可。
<server-groups />
(2)修改domain.xml文件的<cluster-password>节点:
这里的密码和master的配置一致即可。(这一步可以不管)
<cluster-password>password</cluster-password>
(3)备份原host.xml,复制一份host-slave.xml重命名为host.xml。
(4)修改新host.xml文件的<domain-controller>节点:
这里设置master地址192.168.0.10。
<domain-controller>
<remote host="192.168.0.10" port="9999" security-realm="ManagementRealm" />
</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>
以上的server name 不要与master中的server name相同,方便区分
(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用户名和密码,进入界面,即可查看服务器的运行状况。
4、重启Apache服务,再次访问http://192.168.0.12:6666/mod_cluster_manager,既可以看到master和slave节点,代表成功。