tomcat集群配置详解

来源:互联网 发布:批量spool导出数据 编辑:程序博客网 时间:2024/05/16 06:21

tomcat集群配置详解

版本

         OS:windows service 2003

         Apache: apache_2.2.11-win32-x86-no_ssl

         Tomcat:5.0

         Jk: mod_jk-apache-2.2.4.so

配置

Apache:

         1:安装后Apache后,将mod_jk-apache-2.2.4.so文件拷贝至Apache2.2/modules目录下;

         2:添加workers.properties文件

        

#tomcat服务器列表

worker.list=controller,status

#第一个tomcat的配置,tomcat名为t1

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

worker.t1.port=9009

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

worker.t1.host=10.229.9.43

worker.t1.type=ajp13

#server的加权比重,值越高,分得的请求越多

worker.t1.lbfactor=1

#指定分担请求的server列表,用逗号分隔

 

#第二个tomcat的配置,tomcat名为t2

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

worker. t2.port=7009

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

worker. t2.host=10.229.9.43

worker. t2.type=ajp13

#server的加权比重,值越高,分得的请求越多

worker. t2.lbfactor=1

 

#server名为controller,用于负载均衡

worker.controller.type=lb

#超时重试次数

#worker.retries=3

#指定分担请求的server列表,用逗号分隔

worker.controller.balance_workers= t1, t2

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

#0:一个session针对每个请求分发  1:一个session登陆后只请求一个tomcat

worker.controller.sticky_session=1

#worker.controller.sticky_session_force=1

worker.status.type=status

 

3:添加uriworkermap.properties

/*=controller                      #所有请求都由controller这个server处理

/jkstatus=status                   #所有包含jkstatus请求的都由status这个server处理

/*.gif=controller                  #所有以.gif结尾的请求都由controller这个server处理,以下几个都是一样的意思

/*.jpg=controller

/*.png=controller

/*.css=controller

/*.js=controller

/*.htm=controller

/*.html=controller

 

4:修改Apache2.2/conf/httpd.conf文件

     在该文件下添加以下内容:

 

#### 加载 mod_jk 模块

LoadModule jk_module modules/mod_jk-apache-2.2.4.so

#### 加载集群中的workers

JkWorkersFile conf/workers.properties

#### 加载workers的请求处理分配文件

JkMountFile conf/uriworkermap.properties

#### 指定jk的日志输出文件

JkLogFile logs/mod_jk.log

#### 指定日志级别

JkLogLevel warn

 

Tomcat

1:将Tomcat5.01/conf/Catalina/localhost文件夹下的文件全部复制到

Tomcat5.01/conf/Standalone/localhost文件夹下(不存在的话新建);

2:修改server.xml

    

<!-- You should set jvmRoute to support load-balancing via JK/JK2 ie :

    <Engine name="Standalone" defaultHost="localhost" debug="0" jvmRoute="jvm1">         

    -->

         

    <!-- Define the top level container in our container hierarchy -->

    <Engine name="Catalina" defaultHost="localhost" debug="0">

改为:

<!-- You should set jvmRoute to support load-balancing via JK/JK2 ie : -->

    <Engine name="Standalone" defaultHost="localhost" debug="0" jvmRoute="t1">         

     

         

    <!-- Define the top level container in our container hierarchy

    <Engine name="Catalina" defaultHost="localhost" debug="0"> -->

上面t1对应的是workers.properties中指定的服务器(tomcat;

然后将下面一段代码的注释取消掉

<!--

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

                 managerClassName="org.apache.catalina.cluster.session.DeltaManager"

                 expireSessionsOnShutdown="false"

                 useDirtyFlag="true">

 

            <Membership

                className="org.apache.catalina.cluster.mcast.McastService"

                mcastAddr="228.0.0.4"

                mcastPort="45564"

                mcastFrequency="500"

                mcastDropTime="3000"/>

 

            <Receiver

                className="org.apache.catalina.cluster.tcp.ReplicationListener"

                tcpListenAddress="auto"

                tcpListenPort="4001"

                tcpSelectorTimeout="100"

                tcpThreadCount="6"/>

 

            <Sender

                className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"

                replicationMode="pooled"/>

 

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

                   filter=".*/.gif;.*/.js;.*/.jpg;.*/.htm;.*/.html;.*/.txt;"/>

        </Cluster>

        -->        

 

最后修改/Tomcat5.02/conf/web.xml中添加<distributable/>,以实现session在服务器(tomcat)间进行复制;

 

 

原创粉丝点击