插件窝 干货文章 Debian下怎么搭建Nginx和Tomcat服务器实现负载均衡

Debian下怎么搭建Nginx和Tomcat服务器实现负载均衡

Tomcat Nginx server sudo 499    来源:    2025-04-26

Debian下搭建Nginx和Tomcat服务器实现负载均衡

准备工作

  1. 确保你有一台运行Debian的服务器
  2. 确保你有root或sudo权限
  3. 准备至少两个Tomcat实例(可以在同一服务器或不同服务器上)

安装Nginx

# 更新软件包列表
sudo apt update

# 安装Nginx
sudo apt install nginx -y

# 启动Nginx并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx

安装Java和Tomcat

# 安装OpenJDK
sudo apt install default-jdk -y

# 下载Tomcat (以Tomcat 9为例)
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.68/bin/apache-tomcat-9.0.68.tar.gz

# 解压Tomcat
tar -xzf apache-tomcat-9.0.68.tar.gz

# 创建两个Tomcat实例
mv apache-tomcat-9.0.68 tomcat1
cp -r tomcat1 tomcat2

# 修改第二个Tomcat的端口以避免冲突
sed -i 's/8080/8081/g' tomcat2/conf/server.xml
sed -i 's/8005/8006/g' tomcat2/conf/server.xml
sed -i 's/8009/8010/g' tomcat2/conf/server.xml

# 启动两个Tomcat实例
./tomcat1/bin/startup.sh
./tomcat2/bin/startup.sh

配置Nginx负载均衡

  1. 编辑Nginx配置文件:
sudo nano /etc/nginx/nginx.conf
  1. http块中添加以下内容:
upstream tomcat_servers {
    # 默认使用轮询(round-robin)算法
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;

    # 可选: 设置权重
    # server 127.0.0.1:8080 weight=3;
    # server 127.0.0.1:8081 weight=1;

    # 可选: 使用最少连接算法
    # least_conn;

    # 可选: 设置健康检查
    # server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
    # server 127.0.0.1:8081 max_fails=3 fail_timeout=30s;
}

server {
    listen 80;
    server_name your_domain.com; # 替换为你的域名或IP

    location / {
        proxy_pass http://tomcat_servers;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
  1. 测试Nginx配置并重启:
sudo nginx -t
sudo systemctl restart nginx

验证负载均衡

  1. 访问你的服务器IP或域名,应该能看到Tomcat的默认页面
  2. 检查Nginx是否在两个Tomcat实例之间分配流量:
# 查看Nginx访问日志
tail -f /var/log/nginx/access.log

# 查看Tomcat访问日志
tail -f tomcat1/logs/localhost_access_log.*
tail -f tomcat2/logs/localhost_access_log.*

可选配置

会话保持(Sticky Session)

如果需要会话保持,可以修改Nginx配置:

upstream tomcat_servers {
    ip_hash; # 基于客户端IP的会话保持
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
}

HTTPS支持

  1. 获取SSL证书(可以使用Let's Encrypt)
  2. 修改Nginx配置:
server {
    listen 443 ssl;
    server_name your_domain.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/privkey.pem;

    location / {
        proxy_pass http://tomcat_servers;
        # 其他proxy设置...
    }
}

server {
    listen 80;
    server_name your_domain.com;
    return 301 https://$host$request_uri;
}

故障排除

  1. Nginx无法启动:运行sudo nginx -t检查配置语法
  2. Tomcat无法访问:检查Tomcat日志tomcat*/logs/catalina.out
  3. 连接被拒绝:确保防火墙允许80端口(HTTP)和443端口(HTTPS)

通过以上步骤,你已经在Debian系统上成功搭建了Nginx+Tomcat的负载均衡环境。