假设三台机器IP分别为172.29.128.100、172.29.128.101、172.29.128.102,全部是32Bit的windowsXP系统,分别安装了Apache2.2、jboss-4.2.3.GA、jboss-4.2.3.GA。
将要部署的架构如下:
Apache(172.29.128.100)
|
jboss cluster
|
//
/ /
/ /
jboss jboss
(172.29.128.101) (172.29.128.102)
- 在web应用的web.xml文件中加入<distributable />
- 在web应用中(与web.xml同一文件夹下)添加jboss-web.xml文件,内容如下:
- < jboss-web >
- < replication-config >
- < replication-trigger > SET_AND_NON_PRIMITIVE_GET
- </ replication-trigger >
- < replication-granularity >
- SESSION
- </ replication-granularity >
- < replication-field-batch-mode >
- True
- </ replication-field-batch-mode >
- </ replication-config >
- </ jboss-web >
- <jboss-web>
- <replication-config>
- <replication-trigger>SET_AND_NON_PRIMITIVE_GET
- </replication-trigger>
- <replication-granularity>
- SESSION
- </replication-granularity>
- <replication-field-batch-mode>
- True
- </replication-field-batch-mode>
- </replication-config>
- </jboss-web>
- 将应用打成war包 放在 101 和 102 的 jboss-4.2.3.GA/server/all/deploy 下
配置jboss集群:
- 在 101 和 102 的 jboss-4.2.3.GA/bin 下新建 run_all.bat 文件,内容分别为: run.bat -c all -b 172.29.128.101 , run.bat -c all -b 172.29.128.102(这一步一定要作,否则不能实现会话复制)
- 修改jboss-4.2.3.GA/server/all/deploy/jboss-web.deployer/server.xml 文件,将address="${ jboss .bind. adress }" 中的 ${ jboss .bind. adress } 替换成 jboss 服务器的 IP 。 找到<Engine name="jboss.web" defaultHost="localhost"> ,将101 改为<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1"> ,102 改为<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node2">
- 修改jboss-4.2.3.GA/server/all/deploy/jboss-web-cluster.sar/META-INF/jboss-server.xml ,注释调<config><UDP mcast_addr ……,放开<config><TCP mcast_addr……,将所有down_thread="false" up_thread="false" 改为down_thread="true" up_thread="true" 。找到initial_host=” ……,将101 的改为initial_hosts="172.29.128.101[7810],172.29.128.102[7810]" ,102 的改为initial_hosts="172.29.128.102[7810],172.29.128.101[7810]"
- 启动101 的jboss ,待启动成功后启动102 的jboss
配置负载均衡
-
修改apache的httpd.conf ,放开下列模块前的注释:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so -
在httpd.conf 中添加:
ProxyRequests Off
ProxyPass /yourProName balancer:// 172.29.128.100
<Proxy balancer://172.29.128.100>
BalancerMember ajp://172.29.128.1018009/yourProName route=node1 loadfactor=50
BalancerMember ajp://172.29.128.102:8009/yourProName route=node2 loadfactor=50
</Proxy> - 启动apache,在浏览器中输入http://172.29.128.100/ yourProName