Apache+Jboss集群基于反向代理的负载均衡

假设三台机器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)

  1. 在web应用的web.xml文件中加入<distributable />
  2. 在web应用中(与web.xml同一文件夹下)添加jboss-web.xml文件,内容如下:
    1. < jboss-web >   
    2.     < replication-config >   
    3.         < replication-trigger > SET_AND_NON_PRIMITIVE_GET  
    4.         </ replication-trigger >   
    5.     < replication-granularity >   
    6.             SESSION  
    7.     </ replication-granularity >   
    8.     < replication-field-batch-mode >   
    9.             True  
    10.     </ replication-field-batch-mode >   
    11.     </ replication-config >   
    12. </ jboss-web >   
    [xhtml]  view plain copy
    1. <jboss-web>  
    2.     <replication-config>  
    3.         <replication-trigger>SET_AND_NON_PRIMITIVE_GET  
    4.         </replication-trigger>  
    5.     <replication-granularity>  
    6.             SESSION  
    7.     </replication-granularity>  
    8.     <replication-field-batch-mode>  
    9.             True  
    10.     </replication-field-batch-mode>  
    11.     </replication-config>  
    12. </jboss-web>  
  3. 应用打成war包 放在 101  102  jboss-4.2.3.GA/server/all/deploy 

 

配置jboss集群:

  1.  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(这一步一定要作,否则不能实现会话复制)
  2. 修改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">
  3. 修改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]"
  4. 启动101 的jboss ,待启动成功后启动102 的jboss

 

配置负载均衡

  1. 修改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
  2. 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>
  3. 启动apache,在浏览器中输入http://172.29.128.100/ yourProName 

猜你喜欢

转载自jetway.iteye.com/blog/1782166
今日推荐