配置 Tomcat 集群

类别:Java 点击:0 评论:0 推荐:

0. 综述
0.1 目标
配置一个可扩展、高可用、有负载均衡和错误恢复的 Tomcat 集群

0.2 许可协议
GNU Free Documentation License 允许任意转载,但请保持本文档的完整性如有修改,务请通知作者

0.3 作者
钝刀

1. 下载
1.1 Tomcat
1.2 Tomcat 会话复制库

2. 安装
2.1 第一个 Tomcat

$tar vfxz jakarta-tomcat-4.1.27.tar.gz $cp -R jakarta-tomcat-4.1.27 /www/server/tomcat1

2.2 第二个 Tomcat
# 暂时不安装,等配置好的一个 Tomcat 后,直接复制得到副本,在副本的基础上修改得到

2.3 JK2
# 请参考《Linux 下安装支持 JSP/PHP 的 WEB server》一文编译.

3. 配置
3.1 Apache 的 JK2 配置文件 workers2.properties
# 这个是 Apache 的 JK2 配置文件,位于 Apache 安装目录下的 conf 目录中,如果原来没有这个文件,新建一个
# 内容如下

$vi workers2.properties [shm] file=${serverRoot}/logs/shm.file size=1048576 # First Tomcat [channel.socket:tomcat1] port=11009 host=127.0.0.1 [ajp13:tomcat1] channel=channel.socket:tomcat1 # Second Tomcat [channel.socket:tomcat2] port=12009 host=127.0.0.1 [ajp13:tomcat2] channel=channel.socket:tomcat2 # Load Balance [lb:lb1] worker=ajp13:tomcat1 worker=ajp13:tomcat2 # Uri mapping [uri:/*.jsp] group=lb:lb1

3.2 第一个 Tomcat 的 JK2 配置文件 jk2.properties
# 这个是第一个 Tomcat 的 JK2 配置文件,位于第一个 Tomcat 安装目录下的 conf 目录中
# 找到 channelSocket.port=8009
# 取消注释,并修改为

channelSocket.port=11009

3.3 第一个 Tomcat 的配置文件 server.xml
# 这个是第一个 Tomcat 的配置文件,位于第一个 Tomcat 安装目录下的 conf 目录中
# 找到

<Server port="8005" shutdown="SHUTDOWN" debug="0">

# 修改为

<Server port="11005" shutdown="SHUTDOWN" debug="0">

# 开启 JK2 AJP connector,关闭其它 connector (也就是把其它的 connector 删除或注释掉)
# 修改 JK2 AJP connector 的端口为 11009,修改后的 connector 可能会象下面的样子

<Connector className="org.apache.ajp.tomcat4.Ajp13Connector" port="11009" minProcessors="5" maxProcessors="75" acceptCount="10" debug="0"/>

# 为需要集群支持的 webapp 的 context,添加如下manager

<Valve className="org.apache.catalina.session.ReplicationValve" filter=".*\.gif;.*\.jpg;.*\.jpeg;.*\.js" debug="0"/> <Manager className="org.apache.catalina.session.InMemoryReplicationManager" debug="10" printToScreen="true" saveOnRestart="false" maxActiveSessions="-1" minIdleSwap="-1" maxIdleSwap="-1" maxIdleBackup="-1" pathname="null" printSessionInfo="true" checkInterval="10" expireSessionsOnShutdown="false" serviceclass="org.apache.catalina.cluster.mcast.McastService" mcastAddr="228.1.2.3" mcastPort="45566" mcastFrequency="500" mcastDropTime="5000" tcpListenAddress="auto" tcpListenPort="4001" tcpSelectorTimeout="100" tcpThreadCount="2" useDirtyFlag="true"> </Manager>

3.4 第一个 Tomcat 的启动脚本 catalina.sh
# 这个是第一个 Tomcat 的 启动脚本,位于第一个 Tomcat 安装目录下的 bin 目录中
# 添加启动环境变量如下

JAVA_HOME=/usr/java/jdk CATALINA_HOME=/www/server/tomcat1

# 此处的 JAVA_HOME 指向系统实际安装 JDK 的路径
# 此处的 CATALINA_HOME 指向第一个 Tomcat 的安装路径

3.5 由第一个 Tomcat 复制得到第二个 Tomcat

cp -R tomcat1 tomcat2

3.6 第二个 Tomcat 的 JK2 配置文件 jk2.properties
# 参考 3.2
# 修改 channelSocket.port 为

channelSocket.port=12009

# 注意和第一个 Tomcat 的差别

3.7 第二个 Tomcat 的配置文件 server.xml
# 参考 3.3
# 修改关闭端口为

<Server port="12005" shutdown="SHUTDOWN" debug="0">

# 修改 JK2 AJP connector 的端口为 12009,修改后的 connector 可能会象下面的样子

<Connector className="org.apache.ajp.tomcat4.Ajp13Connector" port="12009" minProcessors="5" maxProcessors="75" acceptCount="10" debug="0"/>

# 注意和第一个 Tomcat 的差别

3.8 第二个 Tomcat 的启动脚本 catalina.sh
# 参考 3.4
# 添加启动环境变量如下

JAVA_HOME=/usr/java/jdk CATALINA_HOME=/www/server/tomcat2

# 此处的 JAVA_HOME 指向系统实际安装 JDK 的路径
# 此处的 CATALINA_HOME 指向第二个 Tomcat 的安装路径
# 注意和第一个 Tomcat 的差别

4. 完成
4.1 重起 Apache

$apache/bin/apachectl graceful

4.2 启动第一个 Tomcat

$tomcat1/bin/catalina.sh start

4.3 启动第二个 Tomcat

$tomcat2/bin/catalina.sh start

5. 参考文献
http://www-900.ibm.com/developerWorks/cn/java/l-jetspeed/
http://www.filip.net/tomcat/

本文地址:http://com.8s8s.com/it/it12623.htm