0. 综述
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 后,直接复制得到副本,在副本的基础上修改得到
 
 
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
 
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐