在 Debian 上做 Tomcat 集群,通常目标有两类:
下面按最常见、生产可用的方案讲,适合 Debian 11/12。
|
Nginx / HAProxy
|
---------------------
| | |
Tomcat1 Tomcat2 Tomcat3
sudo apt update
sudo apt install tomcat10 -y
Debian 12 默认是 tomcat10
Debian 11 可能是 tomcat9
启动并设置开机自启:
sudo systemctl enable tomcat10
sudo systemctl start tomcat10
确认:
curl http://localhost:8080
编辑:
/etc/tomcat10/server.xml
在 <Engine> 内添加:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
并在 web.xml 中:
<distributable/>
⚠️ 缺点:
sudo apt install redis-server -y
sudo systemctl enable redis
sudo systemctl start redis
下载(示例版本):
wget https://repo1.maven.org/maven2/com/orangefunction/tomcat-redis-session-manager/2.0.0/tomcat-redis-session-manager-2.0.0.jar
sudo cp tomcat-redis-session-manager-2.0.0.jar /usr/share/tomcat10/lib/
/etc/tomcat10/context.xml
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="127.0.0.1"
port="6379"
database="0"
maxInactiveInterval="1800"/>
重启 Tomcat:
sudo systemctl restart tomcat10
✅ 优点:
sudo apt install nginx -y
sudo nano /etc/nginx/sites-available/tomcat-cluster
upstream tomcat_cluster {
ip_hash;
server 192.168.1.11:8080;
server 192.168.1.12:8080;
server 192.168.1.13:8080;
}
server {
listen 80;
location / {
proxy_pass http://tomcat_cluster;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
启用:
sudo ln -s /etc/nginx/sites-available/tomcat-cluster /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
sudo apt install haproxy -y
frontend http
bind *:80
default_backend tomcat
backend tomcat
balance roundrobin
server t1 192.168.1.11:8080 check
server t2 192.168.1.12:8080 check
✅ 推荐组合:
❌ 不推荐:
| 组件 | 作用 |
|---|---|
| Tomcat | 运行 Java 应用 |
| Nginx | 负载均衡 |
| Redis | Session 共享 |
| Debian | 操作系统 |
如果你愿意,我可以:
你现在是 物理机 / 虚拟机 / 云服务器 / Docker?