温馨提示×

Tomcat集群在CentOS上的搭建方法

小樊
44
2025-09-13 19:58:20
栏目: 智能运维

以下是在CentOS上搭建Tomcat集群的步骤:

  1. 安装Java环境
    确保所有节点安装相同版本的JDK(如OpenJDK 8/11):

    sudo yum install java-1.8.0-openjdk-devel  # 以OpenJDK 8为例  
    
  2. 下载并解压Tomcat
    从官网下载Tomcat压缩包并解压到指定目录(如/opt/tomcat):

    wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.56/bin/apache-tomcat-9.0.56.tar.gz  
    tar -xzf apache-tomcat-9.0.56.tar.gz  
    sudo mv apache-tomcat-9.0.56 /opt/tomcat  
    
  3. 配置Tomcat集群
    修改每个节点的conf/server.xml,在<Engine>标签内添加集群配置:

    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">  
        <Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>  
        <Channel className="org.apache.catalina.tribes.group.GroupChannel">  
            <Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45564"/>  
            <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" port="4000"/>  
            <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"/>  
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>  
        </Channel>  
        <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>  
    </Cluster>  
    
  4. 配置负载均衡器(以Nginx为例)
    安装Nginx并编辑配置文件/etc/nginx/nginx.conf

    sudo yum install nginx  
    

    http块中添加集群配置:

    upstream tomcat_cluster {  
        server 192.168.1.1:8080;  # 替换为实际节点IP  
        server 192.168.1.2:8080;  
    }  
    server {  
        listen 80;  
        location / {  
            proxy_pass http://tomcat_cluster;  
        }  
    }  
    

    启动Nginx:

    sudo systemctl start nginx  
    sudo systemctl enable nginx  
    
  5. 部署应用与测试
    将WAR文件部署到每个Tomcat节点的webapps目录,启动所有节点和Nginx,通过负载均衡器访问应用,验证集群是否正常工作。

  6. 防火墙配置
    开放Tomcat(8080端口)和Nginx相关端口:

    sudo firewall-cmd --add-port=8080/tcp --permanent  
    sudo firewall-cmd --add-port=80/tcp --permanent  
    sudo firewall-cmd --reload  
    

注意事项

  • 确保所有节点的Tomcat版本、配置一致。
  • 可通过jvmRoute属性标识不同节点(需在<Engine>中配置)。
  • 生产环境建议使用Redis等分布式缓存实现会话共享,提升可靠性。

0