tomcat7+apache2.2.25 集群负载均衡以及session复制配置

来源:互联网 发布:cae仿真软件 编辑:程序博客网 时间:2024/05/18 00:31

      本人安装的是windows版本的apache2.2.25,安装好之后打开${Apache_home}/conf/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 

如果上述片段前有“#”注释符将其去掉即可,表示加载上述模块。上述模块是Apache实现负载均衡必须的反向代理模块.


之后继续加入

  Include conf/extra/httpd-vhosts.conf 


表示加载虚拟主机的配置文件,该文件位于${Apache_home}/conf/extra/httpd-vhosts.conf  , 打开该文件去掉默认的两个<VirtualHost *:80>  节点的配置段,并加入如下配置段:


ProxyRequests Off    #表示告诉Apache需要使用反向代理
<proxy balancer://cluster>     #这个节点表示反向代理所采用的负载均衡的具体策略,将访问apache的请求分发到你配置的两个tomcat
BalancerMember ajp://192.168.1.113:8009 loadfactor=1 route=jvm1    #这行表示Apache与第一台tomcat通过tomcat配置的ajp端口8009与之进行通信
BalancerMember ajp://192.168.1.113:8019 loadfactor=1 route=jvm2   #这行表示Apache与第而台tomcat通过tomcat配置的ajp端口8019与之进行通信
</proxy>


<VirtualHost *:80>
         ServerAdmin tangside163@163.com
         ServerName 192.168.1.113
         ServerAlias localhost
ProxyPass /server-status !    #这行表示对访问apache的路径为/server-status的请求不进行到tomcat的转发
         ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
         ProxyPassReverse / balancer://cluster/
</VirtualHost>


至此apache的配置完成。


接下来对于安装的两台tomcat7,

第一台tomcat1,我们打开${TOMCAT1_HOME}/conf/server.xml , 找到被注释的Engine节点添加  jvmRoute="jvm1"   属性,配置好如下所示:

   <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">  

 <!--   添加的该  jvmRoute="jvm1"   属性值与上面的Apache的配置文件httpd-vhosts.conf中的  BalancerMember ajp://192.168.1.113:8009 loadfactor=1 route=jvm1 route值对应-->

接着将被注释的Cluster 节点打开

  <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

 接着找到如下AJP   Connector节点,如下所示

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />  

 


   

至此,第一台tomcat的配置完成,接下来配置第二台tomcat。

打开${TOMCAT2_HOME}/conf/server.xml ,   找到被注释的Engine节点添加  jvmRoute="jvm2"   属性,配置好如下所示:

   <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm2">  

 <!--   添加的该  jvmRoute="jvm2"   属性值与上面的Apache的配置文件httpd-vhosts.conf中的  BalancerMember ajp://192.168.1.113:8019 loadfactor=1 route=jvm2 route值对应-->

接着将被注释的Cluster 节点打开

  <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>


  接着找到Connector节点,将默认的port属性值由8080改为8081,防止两台tomcat在同一系统下端口冲突,将默认的属性redirectPort值由8443改为8444,

然后将  <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />  改为

  <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8019" protocol="AJP/1.3" redirectPort="8444" />


至此第二台tomcat配置完成。


如果要实现两台tomcat中的某个应用session复制,必须将对应的两个tomcat中的webapps/${某个应用}/WEB-INF/web.xml 中添加<distributable/>节点,表示告诉tomcat该应用运行在分布式的环境中





0 0
原创粉丝点击