在 Debian 上做 Tomcat 集群,通常目标是:多台 Tomcat 实例共同提供服务,实现负载均衡 + 会话保持 / 会话复制。下面给你一套常见、实用、可落地的方案。
|
Nginx / Apache
|
-----------------------
| | |
Tomcat1 Tomcat2 Tomcat3
apt update
apt install openjdk-17-jdk -y
apt install tomcat10 -y
复制实例目录:
cp -r /var/lib/tomcat10 /var/lib/tomcat10-2
cp -r /etc/tomcat10 /etc/tomcat10-2
修改端口(关键):
server.xml
8005 → 80068080 → 80818009 → 8010server.xml在 <Engine> 中开启 Cluster:
<Engine name="Catalina" defaultHost="localhost">
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
</Engine>
在 WEB-INF/web.xml 中加:
<distributable/>
apt install nginx -y
upstream tomcat_cluster {
ip_hash;
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
listen 80;
location / {
proxy_pass http://tomcat_cluster;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
✅ ip_hash 可保证同一用户访问同一 Tomcat
tomcat-redis-session-managerapt install redis-server -y
context.xml<Manager className="com.example.redis.RedisSessionManager"
host="127.0.0.1"
port="6379"
database="0"/>
✅ 适合大规模集群
✅ 推荐组合:
✅ 健康检查
max_fails✅ 静态资源放 Nginx
Q:Tomcat 集群必须同机吗?
不需要,跨服务器也可以,只要网络通。
Q:Debian 12 能用吗?
完全可以,上面方案通用。
Q:Spring Boot 怎么集群?
内嵌 Tomcat 一样,Redis Session 最常用。
如果你愿意,我可以:
你现在是 学习 / 测试 / 生产 环境?