Tomcat集群配置

原创
2016/04/07 10:31
阅读数 99

一、安装Apache服务器:

http://archive.apache.org/dist/httpd/binaries/win32/httpd-2.2.25-win32-x86-no_ssl.msi

下载后安装成功后 在浏览器中输入 http://localhost/,测试是否安装成功。


二、 安装tomcat:

因为是集群,所有解压两个tomcat去模拟


但是两个tomcat同时开的话会端口冲突所以需要改一下端口号。


三、安装下载mod_jk:

下载地址: http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.31/mod_jk-1.2.31-httpd-2.2.3.so


四、开始配置负载均衡:

1.将下载后的mod_jk-1.2.31-httpd-2.2.3.so放到  C:\Program Files (x86)\Apache Software Foundation\Apache2.2\modules(这个是我的安装路径)

2.在C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf(同样是我的路径)下

创建一个mod_jk.conf,内容为:

#加载mod_jk Module

LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so


 #指定workers.properties文件路径 

JkWorkersFile conf/workers.properties

 

#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名

JkMount /* controller


3.

然后在C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf创建一个workers.properties的文件,添加如下内容

 

#server

worker.list = controller

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

#ajp13端口号,在tomcatserver.xml配置,默认8009

worker.tomcat1.port=8009

 

#tomcat的主机地址,如不为本机,请填写ip地址 

worker.tomcat1.host=localhost

 

#协议类型

worker.tomcat1.type=ajp13

 

#server的加权比重,值越高,分得的请求越多。lbfactor是负载平衡因数(Load Balance Factor)

worker.tomcat1.lbfactor=1

 

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

worker.tomcat2.port=9009

worker.tomcat2.host= localhost

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor=1

 

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

#负载均衡控制器类型,lbfactor是负载平衡因数(Load Balance Factor)

worker.controller.type=lb

 

#指定分担请求的tomcat列表

worker.controller.balanced_workers=tomcat1,tomcat2

 

#粘性session(默认是打开的当该属性值=true(或1)时,代表session是粘性的,即同一session在集群中的同一个节点上处理,session不跨越节点。在集群环境中,一般将该值设置为false

worker.controller.sticky_session=false

 

#设置用于负载均衡的serversession可否共享

worker.controller.sticky_session_force=1

 

4.最后在修改C:\cluster\httpd\conf\httpd.conf,在其最后添加如下内容:

 

Include conf/mod_jk.conf

 

到此负载均衡服务器配置完成!


五、配置tomcat:

1.刚才解压了两个tomcat,首先打开第一个tomcat,找到conf里面的server.xml,

在配置<Engine>中添加jvmRoute="tomcat1",名称与worker.controller.balanced_workers=tomcat1,tomcat2对应

然后再<Engine>下添加如下内容:

<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>

 

第一个tomcat配置完成。

2.开始配置第二个tomcat:

其他的内容同上,不过要改成 Engine 里面的jvmRoute="tomcat2"

其他配置粘贴的一样粘贴进去,

不同的是要改一下这一台tomcat的端口号

然后修改http1.1的端口,默认是8080

最后修改AJP1.3端口,默认是8009



这个AJP1.3的端口必须与workers.properties文件中的配置

worker.tomcat2.port=9009
保持一下。


配置完成。

启动两个tomcat:






展开阅读全文
打赏
1
4 收藏
分享
加载中
更多评论
打赏
0 评论
4 收藏
1
分享
返回顶部
顶部