温馨提示×

debian Tomcat如何做负载均衡

小樊
44
2026-09-06 14:18:56
栏目: 云计算

在 Debian 上给 Tomcat 做负载均衡,常见做法有三种:Nginx 反向代理(最常用)Apache + mod_jk / mod_proxyTomcat 集群(Session 复制)。下面给你一套实战最常用方案


一、架构示例(推荐)

用户
 |
Nginx (负载均衡)
 |-- Tomcat1 (8080)
 |-- Tomcat2 (8080)

二、安装 Tomcat(多台或同机多实例)

1. 安装 JDK

sudo apt update
sudo apt install openjdk-17-jdk -y

2. 安装 Tomcat

sudo apt install tomcat10 -y

如果是多台服务器

  • 每台 Debian 都装 Tomcat
  • 如果是同一台机器
cp -r /opt/tomcat /opt/tomcat2

修改 server.xml 端口(8080 → 8081)


三、Nginx 做负载均衡(重点)

1. 安装 Nginx

sudo apt install nginx -y

2. 配置负载均衡

sudo nano /etc/nginx/conf.d/tomcat.conf

示例配置:

upstream tomcat_cluster {
    least_conn;
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
}

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://tomcat_cluster;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

3. 测试并重启

sudo nginx -t
sudo systemctl restart nginx

✅ 访问 http://服务器IP 即可


四、负载均衡策略说明

策略 说明
round-robin 默认,轮询
least_conn 最少连接(推荐)
ip_hash 同一 IP 固定到一台(解决 Session)

示例(ip_hash):

upstream tomcat_cluster {
    ip_hash;
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
}

五、Session 问题如何处理(重要)

方案 1:IP Hash(简单)

ip_hash;

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

  • 使用 spring-session
  • Tomcat + Redis

方案 3:Tomcat Session 复制(不推荐新项目)

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

六、健康检查(可选)

Nginx Plus 支持,开源可用:

server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;

七、常用命令

systemctl status nginx
systemctl status tomcat10
journalctl -u tomcat10

八、总结

最推荐方案

  • Debian + Nginx + 多 Tomcat
  • least_conn
  • Redis 管理 Session

如果你愿意,我可以:

  • 帮你写 systemd 多实例 Tomcat
  • 给你 Docker + Nginx 方案
  • 配置 HTTPS + 负载均衡

你现在是 单机还是多台服务器

0