温馨提示×

debian nginx怎样配置负载均衡

小樊
37
2026-10-15 07:16:51
栏目: 云计算

在 Debian 上用 Nginx 配置负载均衡,通常是使用 upstream + proxy_pass 来实现反向代理和流量分发。下面给你一个从安装到配置的完整示例。


一、安装 Nginx(Debian)

sudo apt update
sudo apt install nginx -y

启动并设置开机自启:

sudo systemctl enable nginx
sudo systemctl start nginx

二、配置负载均衡(核心)

1️⃣ 编辑 Nginx 配置文件

推荐新建一个站点配置:

sudo vim /etc/nginx/conf.d/load_balancer.conf

2️⃣ 配置 upstream(后端服务器池)

upstream backend {
    # 负载均衡算法(默认 round-robin)
    # least_conn;     # 最少连接
    # ip_hash;        # 按 IP 绑定

    server 192.168.1.10:8080 weight=3;
    server 192.168.1.11:8080;
    server 192.168.1.12:8080 backup;  # 备份节点
}

说明:

  • weight:权重(值越大分配越多)
  • backup:主节点挂了才启用
  • ip_hash:同一 IP 总是访问同一台后端

3️⃣ 配置 server 反向代理

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;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

三、常见负载均衡策略

✅ 轮询(默认)

upstream backend {
    server 10.0.0.1;
    server 10.0.0.2;
}

✅ 权重

server 10.0.0.1 weight=5;
server 10.0.0.2 weight=1;

✅ 最少连接

upstream backend {
    least_conn;
    server 10.0.0.1;
    server 10.0.0.2;
}

✅ IP Hash(会话保持)

upstream backend {
    ip_hash;
    server 10.0.0.1;
    server 10.0.0.2;
}

四、健康检查(基础)

Nginx 开源版支持简单检测:

server 10.0.0.1 max_fails=3 fail_timeout=30s;
  • max_fails:失败次数
  • fail_timeout:判定不可用时间

⚠️ 高级健康检查需要 Nginx Plus


五、HTTPS(可选但推荐)

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate     /etc/ssl/certs/example.com.crt;
    ssl_certificate_key /etc/ssl/private/example.com.key;

    location / {
        proxy_pass http://backend;
    }
}

六、检查并重启 Nginx

sudo nginx -t
sudo systemctl reload nginx

七、验证

curl http://example.com

多次访问,观察是否分发到不同后端。


如果你有 具体场景(如:

  • WebSocket
  • Docker 容器
  • HTTPS + 负载均衡
  • 前后端分离

我可以给你更针对性的配置示例。

0 踩