温馨提示×

debian nginx如何负载

小樊
41
2026-09-21 18:46:02
栏目: 智能运维

在 Debian 上用 Nginx 做负载均衡,通常是使用 Nginx 的 upstream 模块,把请求转发到多台后端服务器。下面从安装 → 配置 → 常用策略 → 验证一步步说明。


一、安装 Nginx(Debian)

sudo apt update
sudo apt install nginx -y

启动并设置开机自启:

sudo systemctl enable nginx
sudo systemctl start nginx

二、基本负载均衡配置(反向代理)

示例场景

  • Nginx:192.168.1.10
  • 后端服务器:
    • 192.168.1.20:8080
    • 192.168.1.21:8080

1️⃣ 编辑 Nginx 配置

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

写入以下内容:

upstream backend {
    server 192.168.1.20:8080;
    server 192.168.1.21:8080;
}

server {
    listen 80;
    server_name example.com;

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

保存后测试配置:

sudo nginx -t

重新加载:

sudo systemctl reload nginx

三、负载均衡策略(重点)

1️⃣ 轮询(默认)

upstream backend {
    server 192.168.1.20:8080;
    server 192.168.1.21:8080;
}

2️⃣ 加权轮询

upstream backend {
    server 192.168.1.20:8080 weight=3;
    server 192.168.1.21:8080 weight=1;
}

3️⃣ IP Hash(会话保持)

upstream backend {
    ip_hash;
    server 192.168.1.20:8080;
    server 192.168.1.21:8080;
}

4️⃣ 最少连接

upstream backend {
    least_conn;
    server 192.168.1.20:8080;
    server 192.168.1.21:8080;
}

四、健康检查 & 容错

upstream backend {
    server 192.168.1.20:8080 max_fails=3 fail_timeout=10s;
    server 192.168.1.21:8080 max_fails=3 fail_timeout=10s;
}
  • max_fails:失败次数
  • fail_timeout:暂停时间

⚠️ Nginx 开源版 无主动健康检查(需 Nginx Plus 或 nginx-upstream-check-module)


五、HTTPS(可选)

listen 443 ssl;
ssl_certificate     /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;

六、验证负载均衡

curl http://example.com

多次访问,观察是否轮询到不同后端(可后端返回不同内容测试)。


七、常见问题

❌ 502 Bad Gateway

  • 后端服务未启动
  • 防火墙未放行端口
  • upstream IP/端口写错

✅ 查看日志

tail -f /var/log/nginx/error.log

如果你愿意,我可以:

  • 给你一套 Docker + Nginx 负载均衡
  • 或 Nginx + HTTPS + 多域名
  • 或 Keepalived 高可用 Nginx

直接告诉我你的使用场景即可。

0 踩