Tomcat负载均衡配置(3)

4、Apache与Tomcat的配置

首先将下载的JK模块目录中的mod_jk.so文件拷贝到%Apache_Home%\modules目录下。

4.1 配置workers.properties文件

在%Apache_Home%\conf目录下创建workers.properties文件,输入如下内容(“#”在配置文件中表示注释):

# server列表

worker.list=controller,tomcat1,tomcat2

# ======配置tomcat1=====

# 配置ajp13端口号,在tomcat1中server.xml文件中配置,默认8009

worker.tomcat1.port=8009

# tomcat1主机地址,如不为本机,则填写IP地址

worker.tomcat1.host=localhost

# 配置协议名称

worker.tomcat1.type=ajp13

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

worker.tomcat1.lbfactor=1

# ======配置tomcat2=====

# 配置ajp13端口号,在tomcat2中server.xml文件中配置

worker.tomcat2.port=9009

# tomcat2主机地址,如不为本机,则填写IP地址

worker.tomcat2.host=localhost

# 配置协议名称

worker.tomcat2.type=ajp13

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

worker.tomcat2.lbfactor=1

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

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

worker.controller.type=lb

# 指定分担请求的tomcat

worker.controller.balanced_workers=tomcat1,tomcat2

关于上述lbfactor属性的说明:若tomcat1与tomcat2的属性值分别为4、1,即“worker.tomcat1.lbfactor=4”、“worker.tomcat2.lbfactor=1”,则表示tomcat1处理请求数的80%,tomcat2处理请求数的20%,这里配置由它们均分请求。

4.2 配置mod_jk.conf文件

在%Apache_Home%\conf目录下建立mod_jk.conf文件,配置内容如下:

# 加载mod_jk module

LoadModule jk_module modules/mod_jk.so

# 加载集群中的workers

JkWorkersFile conf/workers.properties

# 指定Jk的日志输出文件

JkLogFile logs/mod_jk.log

# 指定日志级别

JkLogLevel warn

# 指定哪些请求交给tomcat处理,"controller'为在workers.properties文 # 件中制定的负载均衡控制器名

JkMount /* controller

4.3  配置httpd.conf文件

在%Apache_Home%\conf目录下的httpd.conf文件最后一行写入以下内容

include "D:\Program Files\Apache\Apache2.2\conf",注意此处要加英文引号。独立这些配置文件是因为会定期更新它们的内容,使得在修改配置的时候无需重新启动 Apache 服务器。

4.4 修改server.xml文件

修改位于%Tomcat1_Home%\conf目录下的server.xml配置文件,将“<Engine defaultHost="localhost">”修改为“<Engine defaultHost="localhost" jvmRoute="tomcat2">”,此处“jvmRoute”赋得值为workers.properties文件中的server名,并在其后添加如下内容(这段内容可在可在%Tomcat1_Home%\webapps\docs目录中的cluster-howto.html文件中找到):

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

将修改好server.xml文件复制一份到%Tomcat2_Home%\conf目录下,这里是在一台电脑上安装两个tomcat,应该修改tomcat2的一些监听端口号,以避免冲突,修改时注意不要与服务器上其它应用的端口冲突(这里是在文本编辑器中将server.xml文件中所有数字“8”修改为“9”)。注意:在将ajp13协议的端口号默认值8009修改为9009时,要与workers.properties文件内worker.tomcat2.port=9009一致,并将

<Engine defaultHost="localhost" jvmRoute="tomcat2">

处的tomcat2修改为tomcat1,将

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

NioReceiver" address="auto" port="4000" autoBind="100"  selectorTimeout="5000" maxThreads="6" />

处的4000改为4001,其余不变。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/dade2a00dfc1d4bf740c672b11b3cbb6.html