配置 Tomcat 集群

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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值