温馨提示×

debian tomcat如何集群

小樊
36
2026-10-18 05:58:30
栏目: 智能运维

在 Debian 上做 Tomcat 集群,通常目标有两类:

  1. 负载均衡 + 高可用(多台 Tomcat 分发请求)
  2. Session 共享 / 复制(用户会话不丢失)

下面按最常见、生产可用的方案讲,适合 Debian 11/12。


一、整体架构(推荐)

             |
        Nginx / HAProxy
             |
   ---------------------
   |        |          |
Tomcat1  Tomcat2   Tomcat3
  • Nginx / HAProxy:负载均衡
  • Tomcat:应用服务器(集群节点)
  • Session:用 Redis 或 Tomcat Cluster 复制

二、安装 Tomcat(每台 Debian 节点)

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

三、Tomcat 集群配置(Session 方案)

方案 1:Tomcat 原生 Session 复制(适合小集群)

编辑:

/etc/tomcat10/server.xml

在 <Engine> 内添加:

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

并在 web.xml 中:

<distributable/>

⚠️ 缺点:

  • 节点多时性能差
  • 不适合云环境

✅ 方案 2:Redis 共享 Session(强烈推荐)

1. 安装 Redis

sudo apt install redis-server -y
sudo systemctl enable redis
sudo systemctl start redis

2. Tomcat 使用 Redis Session Manager

下载(示例版本):

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/

3. 修改 context.xml

/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

✅ 优点:

  • 无状态 Tomcat
  • 可随意扩容

四、Nginx 负载均衡(关键)

安装 Nginx

sudo apt install nginx -y

配置 upstream

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

五、高可用(可选)

HAProxy(比 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

六、生产建议

✅ 推荐组合:

  • Nginx + Tomcat + Redis
  • 应用本身 无状态
  • Session 放 Redis
  • 静态资源走 Nginx

❌ 不推荐:

  • Tomcat 原生 Session 复制(>3 节点)
  • 把数据库也放 Tomcat 机器上

七、简单总结

组件 作用
Tomcat 运行 Java 应用
Nginx 负载均衡
Redis Session 共享
Debian 操作系统

如果你愿意,我可以:

  • 给你 docker-compose 版 Tomcat 集群
  • 或 Kubernetes + Tomcat
  • 或 一步一步实操命令版

你现在是 物理机 / 虚拟机 / 云服务器 / Docker?

0 踩