天天看点

linux搭建tomcat集群

在本机Windows7系统上安装一个Ubuntu虚拟机,在虚拟机内搭建两个tomcat集群,

查看linxu版本命令:

uname -a

linux搭建tomcat集群

解压命令:

tar -zxvf xxxx.tar.gz

第一步:安装jdk

1、下载jdk-7u67-linux-i586.tar.gz,放到 /usr/local目录下,解压

生成文件夹 jdk1.7.0_67

2、配置环境变量

编辑/etc/profile,插入一段内容

linux搭建tomcat集群

重启虚拟机,再输入 java -version,确认java安装成功

第二步:安装apache

下载httpd-2.2.31.tar.gz,解压到/usr/local,生成文件夹httpd-2.2.31

进入httpd-2.2.31,执行命令

./configure --prefix=/usr/local/apache2 --enable-mods-shared=all

编译安装 

make 

make install

4、启动apache

/usr/local/apache2/bin/apachectl start

关闭apache 

/usr/local/apache2/bin/apachectl stop

如果报apache is currently not installed,就重新安装下apache

第三步:Apache Tomcat Connector (也就是mod_jk)

1、下载 tomcat-connectors-1.2.41-src.tar.gz,解压到 /usr/local 生成文件夹

tomcat-connectors-1.2.41-src

2、进入 /tomcat-connectors-1.2.41-src/native,执行命令 ./buildconf.sh

如果报 autoconf 没有安装,那就用 执行 apt -get install autoconf安装

3、配置参数

./configure --with-apxs=/usr/local/apache2/bin/apxs \

--with-java-home=$JAVA_HOME --with-java-platform=2 \

--enable-jni

4、编译 安装 

make

make install

如果成功结束,你可以在/usr/local/apache2/modules/下找到mod_jk.so文件。

第四步:安装tomcat

1、下载apache-tomcat-6.0.41.tar.gz,解压到 /usr/local,生成文件夹

apache-tomcat-6.0.41,再执行重命名命令

 cp apache-tomcat-6.0.41 apache-tomcat-6.0.41-1,

再解压一次并重命名为 apache-tomcat-6.0.41-2

2、修改server.xml(两个tomcat都要做)

  (1) 修改端口,把其中一个tomcat的各种端口修改,一个8080,一个8081,避免冲突

  (2)修改server.xml

两个tomcat分别改为 tomcat1和tomcat2

(3)增加集群的支持,两个tomcat的server.xml都插入下面的内容

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

         channelSendOptions="8">  

  <Manager className="org.apache.catalina.ha.session.DeltaManager"  

           expireSessionsOnShutdown="false"  

           notifyListenersOnReplication="true"/>  

  <Channel className="org.apache.catalina.tribes.group.GroupChannel">  

    <Membership className="org.apache.catalina.tribes.membership.McastService"  

                address="228.0.0.4"  

                port="45564"  

                frequency="500"  

                dropTime="3000"/>  

    <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"  

              address="auto"  

              port="4000"  

              autoBind="100"  

              selectorTimeout="5000"  

              maxThreads="6"/>  

    <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">  

      <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>  

    </Sender>  

    <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>  

    <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>  

  </Channel>  

  <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"  

         filter=""/>  

  <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>  

  <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"  

            tempDir="/tmp/war-temp/"  

            deployDir="/tmp/war-deploy/"  

            watchDir="/tmp/war-listen/"  

            watchEnabled="false"/>  

  <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>  

  <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>  

</Cluster>      

第五步:配置apache

1、进入/usr/local/apache2/conf,编辑 httpd.conf,插入一下内容

# Load mod_jk module  

LoadModule jk_module modules/mod_jk.so  

# Specify jk log file.  

JkLogFile /var/log/mod_jk.log  

# Specify jk log level [debug/error/info]  

JkLogLevel info  

# Specify workers.properties, this file tell jk:  

# how many nodes and where they are.  

JkWorkersFile conf/workers.properties  

# Specify which requests should handled by which node.  

JkMount /* controller

2、在conf目录下创建 workers.properties,插入内容

#所有节点列表,其中controller是一个逻辑结点,负责负载均衡控制,  

#如果JkMount中的URL指定给了controller就表示这个请求会被自动散列到某个物理节点上。  

#注意:真正负责处理请求的tomcat的名称(这里就是tomcat1,tomcat2)必须于它们在conf/server.xml  

#文件中配置的jvmRout的属性值是一致的!  

worker.list = controller,tomcat1,tomcat2  

#========tomcat1========  

worker.tomcat1.port=6009       #ajp13 端口号,在tomcat下server.xml配置,默认8009  

worker.tomcat1.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址  

worker.tomcat1.type=ajp13  

worker.tomcat1.lbfactor = 1    #server的加权比重,值越高,分得的请求越多  

#========tomcat2========  

worker.tomcat2.port=7009       #ajp13 端口号,在tomcat下server.xml配置,默认8009  

worker.tomcat2.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址  

worker.tomcat2.type=ajp13  

worker.tomcat2.lbfactor = 1    #server的加权比重,值越高,分得的请求越多  

#========controller,负载均衡控制器========  

worker.controller.type=lb  

worker.controller.balance_workers=tomcat1,tomcat2   #指定分担请求的tomcat,旧版本中的balanced_workers,已不再推荐使用!  

worker.controller.sticky_session=1 #sticky_session为1表示,  

#当某一 client的session创建之后,后续由该客户端发起的请求,也就是这个session的所有请求都始终由第一次处理该请求的结点  

#负责处理(除非该结点挂掉)

至此tomcat集群配置完成,通过一个简单的web应用可以测试

第六步、部署web应用 TestMVC

将TestMVC.war包分别放到两个tomcat的webapps目录下

注意web应用中的web.xml需要在</web-app>前面插入<distributable/>

第七步:测试集群

1、启动apache  /usr/local/apache2/bin/apachectl start

2、启动两个tomcat  sh startup.sh

3、访问集群 http://localhost/TestMVC

非集群访问方式 http://localhost:8080/TestMVC和http://localhost:8081/TestMVC