0.1 目標
配置一個可擴展、高可用、有負載均衡和錯誤恢復的 Tomcat 集群
0.2 許可協議
GNU Free Documentation License 允許任意轉載,但請保持本文檔的完整性如有修改,務請通知作者
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/
(申明:本文來源于網絡,摘錄于此,僅為日后方便查看)