在 Debian 上搭建 Tomcat 集群,通常有三层目标:
下面给你一个实战级、可落地的 Debian + Tomcat 集群方案。
+-------------------+
| Nginx / HAProxy |
| (负载均衡) |
+-------------------+
/ | \
+--------+ +--------+ +--------+
| Tomcat | | Tomcat | | Tomcat |
| 01 | | 02 | | 03 |
+--------+ +--------+ +--------+
\ | /
+-------------------+
| Session 存储 |
| Redis / DB / |
| Multicast |
+-------------------+
sudo apt update
sudo apt install openjdk-17-jdk -y
不要直接 apt 装 tomcat(只能一个),建议手动部署:
cd /opt
wget https://archive.apache.org/tomcat/tomcat-10/v10.1.20/bin/apache-tomcat-10.1.20.tar.gz
tar -xzf apache-tomcat-10.1.20.tar.gz
mv apache-tomcat-10.1.20 tomcat1
cp -r tomcat1 tomcat2
修改端口(关键):
vim tomcat1/conf/server.xml
vim tomcat2/conf/server.xml
示例(tomcat2):
<Connector port="8081" protocol="HTTP/1.1" />
<Server port="8006" shutdown="SHUTDOWN">
sudo apt install redis-server -y
使用官方方案:
tomcat-redis-session-manager或直接用 Spring Boot:
spring:
session:
store-type: redis
非 Spring 项目也可用 Valve + Redis
修改 server.xml:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
<Manager className="org.apache.catalina.ha.session.DeltaManager"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
port="4000"/>
</Channel>
</Cluster>
⚠ 注意:
Session 放客户端(JWT)
sudo apt install nginx -y
upstream tomcat_cluster {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
listen 80;
location / {
proxy_pass http://tomcat_cluster;
}
}
sudo nginx -t
sudo systemctl reload nginx
sudo apt install haproxy -y
backend tomcat
balance roundrobin
server t1 127.0.0.1:8080
server t2 127.0.0.1:8081
sudo apt install keepalived
提供:
✅ 推荐组合:
✅ 监控:
| 组件 | 数量 |
|---|---|
| Tomcat | 2+ |
| Nginx | 1 |
| Redis | 1 |
| Debian | 12 |
如果你愿意,我可以:
你现在是 传统 WAR 项目 还是 Spring Boot?