配置Tomcat集群
0. 综述0.1 目标配置一个可扩展、高可用、有负载均衡和错误恢复的 Tomcat 集群 0.2 许可协议GNU Free Documentation License 允许任意转载,但请保持本文档的完整性如有修改,务请通知作者 1. 下载1.1 Tomcat1.2 Tomcat 会话复制库 2. 安装2.1 第一个 Tomcat$tar vfxz jakart
·
0. 综述
0.1 目标
配置一个可扩展、高可用、有负载均衡和错误恢复的 Tomcat 集群
0.1 目标
配置一个可扩展、高可用、有负载均衡和错误恢复的 Tomcat 集群
0.2 许可协议
GNU Free Documentation License 允许任意转载,但请保持本文档的完整性如有修改,务请通知作者
GNU Free Documentation License 允许任意转载,但请保持本文档的完整性如有修改,务请通知作者
1. 下载
1.1 Tomcat
1.2 Tomcat 会话复制库
1.1 Tomcat
1.2 Tomcat 会话复制库
2. 安装
2.1 第一个 Tomcat
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 后,直接复制得到副本,在副本的基础上修改得到
# 暂时不安装,等配置好的一个 Tomcat 后,直接复制得到副本,在副本的基础上修改得到
2.3 JK2
# 请参考《Linux 下安装支持 JSP/PHP 的 WEB server》一文编译.
# 请参考《Linux 下安装支持 JSP/PHP 的 WEB server》一文编译.
3. 配置
3.1 Apache 的 JK2 配置文件 workers2.properties
# 这个是 Apache 的 JK2 配置文件,位于 Apache 安装目录下的 conf 目录中,如果原来没有这个文件,新建一个
# 内容如下
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
# 取消注释,并修改为
[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 目录中
# 找到
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 可能会象下面的样子
# 开启 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
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 目录中
# 添加启动环境变量如下
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 的安装路径
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 为
3.6 第二个 Tomcat 的 JK2 配置文件 jk2.properties
# 参考 3.2
# 修改 channelSocket.port 为
channelSocket.port=12009
# 注意和第一个 Tomcat 的差别
# 注意和第一个 Tomcat 的差别
3.7 第二个 Tomcat 的配置文件 server.xml
# 参考 3.3
# 修改关闭端口为
# 参考 3.3
# 修改关闭端口为
<Server port="12005" shutdown="SHUTDOWN" debug="0">
# 修改 JK2 AJP connector 的端口为 12009,修改后的 connector 可能会象下面的样子
# 修改 JK2 AJP connector 的端口为 12009,修改后的 connector 可能会象下面的样子
<Connector className="org.apache.ajp.tomcat4.Ajp13Connector"
port="12009"
minProcessors="5"
maxProcessors="75"
acceptCount="10"
debug="0"/>
# 注意和第一个 Tomcat 的差别
port="12009"
minProcessors="5"
maxProcessors="75"
acceptCount="10"
debug="0"/>
# 注意和第一个 Tomcat 的差别
3.8 第二个 Tomcat 的启动脚本 catalina.sh
# 参考 3.4
# 添加启动环境变量如下
# 参考 3.4
# 添加启动环境变量如下
JAVA_HOME=/usr/java/jdk
CATALINA_HOME=/www/server/tomcat2
# 此处的 JAVA_HOME 指向系统实际安装 JDK 的路径
# 此处的 CATALINA_HOME 指向第二个 Tomcat 的安装路径
# 注意和第一个 Tomcat 的差别
CATALINA_HOME=/www/server/tomcat2
# 此处的 JAVA_HOME 指向系统实际安装 JDK 的路径
# 此处的 CATALINA_HOME 指向第二个 Tomcat 的安装路径
# 注意和第一个 Tomcat 的差别
4. 完成
4.1 重起 Apache
4.1 重起 Apache
$apache/bin/apachectl graceful
4.2 启动第一个 Tomcat
4.2 启动第一个 Tomcat
$tomcat1/bin/catalina.sh start
4.3 启动第二个 Tomcat
4.3 启动第二个 Tomcat
$tomcat2/bin/catalina.sh start
更多推荐
已为社区贡献1条内容
所有评论(0)