tbwshc

配置Apache+Tomcat集群

操作系统:Debian6.0 (192.168.225.129 虚拟机1台)

软件版本:Apache-2.2.16, Tomcat-6.0.35

1.安装软件

    >apt-get install update

    *安装Apache

    >apt-get install apache2

    *安装Tomcat

    >wget http://apache.etoak.com/tomcat/tomcat-6/v6.0.35/bin/apache-tomcat-6.0.35.tar.gz

    >tar zxvf apache-tomcat-6.0.35.tar.gz

    >mv apache-tomcat-6.0.35 /user/local/tomcat

    >cp /usr/local/tomcat  /usr/local/tomcat2

    *安装mod_jk

    >apt-get install libapache2-mod-jk

2.配置2个Tomcat

    现在/usr/local目录中已经有2个tomcat目录了,需要更改tomcat2的端口,防止端口冲突。

    >nano /usr/local/tomcat/conf/server.xml

    有3处的默认端口需要更改:

    1.<Server port="8004" shutdown="SHUTDOWN"> 我更改为8003

    2.<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />

        更改为7080

    3.<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

        更改为7009,其中redirectPort 8443不需要更改

    o.另外还需要在<Engine>配置中加入<Clustber>配置

 

Java代码 复制代码 收藏代码
  1. <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"  
  2.     channelSendOptions="8">   
  3.     <Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false"    
  4.         notifyListenersOnReplication="true"/>      
  5.     <Channel className="org.apache.catalina.tribes.group.GroupChannel">     
  6.         <Membership className="org.apache.catalina.tribes.membership.McastService"    
  7.             address="228.0.0.4"    
  8.             port="45564"    
  9.             frequency="500"    
  10.             dropTime="3000"/>     
  11.         <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"    
  12.             address="auto"    
  13.             port="4001"    
  14.             selectorTimeout="5000"    
  15.             maxThreads="6"/>     
  16.         <!-- timeout="60000"-->     
  17.         <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">     
  18.             <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>     
  19.         </Sender>     
  20.         <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>     
  21.         <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>     
  22.         <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>     
  23.     </Channel>    
  24.     <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>     
  25.     <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>      
  26.     <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"    
  27.         tempDir="/tmp/war-temp/"    
  28.         deployDir="/tmp/war-deploy/"    
  29.         watchDir="/tmp/war-listen/"    
  30.         watchEnabled="false"/>    
  31.     <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>     
  32.     <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>       
  33. </Cluster>  

     x.最后2个tomcat都需要改变<Engine的 jvmRoute属性分别为tomcat1和tomcat2,以对应之后worker.properties中的名字。


3.配置Apache以jk方式和tomcat集群

   安装完成后apache的主目录为/etc/apache2,安装完mod-jk之后,mods-enabled里面会多一个jk.load

   创建文件   /etc/apache2/mods-enabled/jk.conf

    >nano /etc/apache2/mods-enabled/jk.conf

       JkWorkersFile /etc/apache2/workers.properties
       JkShmFile     /var/log/apache2/mod_jk.shm
       JkLogFile     /var/log/apache2/mod_jk.log
       JkLogLevel    info

   创建文件  /etc/apache2/workers.properties

    >nano /etc/apache2/workers.properties

       worker.list=controller1

       worker.tomcat1.port=8009
       worker.tomcat1.host=localhost
       worker.tomcat1.type=ajp13
       worker.tomcat1.lbfactor=1

       worker.tomcat2.port=7009
       worker.tomcat2.host=localhost
       worker.tomcat2.type=ajp13
       worker.tomcat2.lbfactor=1

       worker.controller1.type=lb
       worker.controller1.sticky_session=1   #可选项0,1
       worker.controller1.balance_workers=tomcat1,tomcat2

    更改/etc/apache2/sites-enabled/000-default文件

      在</VirtualHost>之前添加

       JkMount /* controller1

       (controller1对应workers.properties中的名字)

配置完成之后先后启动tomcat和apache。

测试:

2个tomcat部署相同的应用:即首页index.jsp显示各自tomcat名称tomcat1和tomcat2

通过80端口访问应用,刷新几次,tomcat1和tomcat2轮流显示。

posted on 2012-07-13 13:53 chen11-1 阅读(1449) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: