温馨提示×

tomcat集群debian如何搭

小樊
42
2026-09-12 09:34:34
栏目: 智能运维

下面给你一份在 Debian 上搭建 Tomcat 集群的实用方案,涵盖常见拓扑、负载均衡、Session 共享,适合生产环境参考。


一、常见 Tomcat 集群架构(推荐)

            +------------------+
            |  Nginx / HAProxy |
            |  (负载均衡)      |
            +--------+---------+
                     |
     +---------------+---------------+
     |               |               |
+----v----+     +----v----+     +----v----+
| Tomcat1 |     | Tomcat2 |     | Tomcat3 |
+---------+     +---------+     +---------+
     |               |               |
     +------- Redis / DB -----------+

二、准备 Debian 环境

1. 安装 JDK

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

2. 创建 Tomcat 用户

sudo useradd -r -m -s /bin/false tomcat

三、安装多个 Tomcat 实例(示例 2 台)

Tomcat 1

cd /opt
sudo wget https://archive.apache.org/tomcat/tomcat-10/v10.1.20/bin/apache-tomcat-10.1.20.tar.gz
sudo tar xzf apache-tomcat-10.1.20.tar.gz
sudo mv apache-tomcat-10.1.20 /opt/tomcat1
sudo chown -R tomcat:tomcat /opt/tomcat1

Tomcat 2

sudo cp -r /opt/tomcat1 /opt/tomcat2
sudo chown -R tomcat:tomcat /opt/tomcat2

修改端口(重要)

编辑:

/opt/tomcat2/conf/server.xml

修改:

  • SHUTDOWN 端口
  • Connector 8080 → 8081
  • AJP 8009 → 8010

四、配置负载均衡(Nginx 示例)

安装 Nginx

sudo apt install nginx -y

配置反向代理

upstream tomcat_cluster {
    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;
    }
}
sudo nginx -t
sudo systemctl reload nginx

五、Session 共享(关键)

✅ 方案 1:Redis + Tomcat Session Manager(推荐)

安装 Redis

sudo apt install redis-server -y

添加依赖(每个 Tomcat)

/opt/tomcat1/lib/
/opt/tomcat2/lib/

放入:

  • tomcat-redis-session-manager.jar
  • jedis.jar

修改 context.xml

<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
         host="127.0.0.1"
         port="6379"
         database="0"
         maxInactiveInterval="1800"/>

✅ 方案 2:Tomcat 内建 Cluster(不推荐跨云)

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

❌ 缺点:

  • 依赖组播
  • 不适合云环境

六、启动 Tomcat

/opt/tomcat1/bin/startup.sh
/opt/tomcat2/bin/startup.sh

七、验证集群

  1. 访问 http://服务器IP
  2. 多次刷新
  3. 查看 Nginx 日志是否分流
  4. 杀掉一个 Tomcat,Session 不丢 ✅

八、生产建议

✅ 使用 systemd 管理 Tomcat
✅ 启用 HTTPS(Let’s Encrypt)
✅ Redis 做高可用
✅ Nginx 限流 + 健康检查


如果你愿意,我可以:

  • 给你 systemd 服务文件
  • 给你 Docker + Tomcat 集群方案
  • 给你 Kubernetes 部署 YAML

你打算用在 测试 / 生产 / 云服务器 哪种环境?

0