以下是在CentOS上搭建Tomcat集群的步骤:
安装Java环境
确保所有节点安装相同版本的JDK(如OpenJDK 8/11):
sudo yum install java-1.8.0-openjdk-devel # 以OpenJDK 8为例
下载并解压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
配置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>
配置负载均衡器(以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
部署应用与测试
将WAR文件部署到每个Tomcat节点的webapps目录,启动所有节点和Nginx,通过负载均衡器访问应用,验证集群是否正常工作。
防火墙配置
开放Tomcat(8080端口)和Nginx相关端口:
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --reload
注意事项:
jvmRoute属性标识不同节点(需在<Engine>中配置)。