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,其余不变。