温馨提示×

linux nginx怎样配置负载均衡

小樊
43
2026-09-29 03:15:28
栏目: 云计算

在 Linux 上使用 Nginx 配置负载均衡,通常是通过 upstream 模块实现的。下面从基础到常用配置一步步说明。


一、基本负载均衡配置

1. 编辑 Nginx 配置文件

一般在以下位置之一:

/etc/nginx/nginx.conf
/etc/nginx/conf.d/*.conf

2. 定义 upstream(后端服务器池)

http {
    upstream backend {
        server 192.168.1.101:8080;
        server 192.168.1.102:8080;
        server 192.168.1.103:8080;
    }
}

3. 配置 server 使用 upstream

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;
    }
}

4. 重启 Nginx

nginx -t
systemctl restart nginx

二、负载均衡策略(调度算法)

1. 轮询(默认)

upstream backend {
    server 192.168.1.101;
    server 192.168.1.102;
}

2. 权重(weight)

upstream backend {
    server 192.168.1.101 weight=3;
    server 192.168.1.102 weight=1;
}

3. IP Hash(同一 IP 访问同一服务器)

upstream backend {
    ip_hash;
    server 192.168.1.101;
    server 192.168.1.102;
}

4. least_conn(最少连接)

upstream backend {
    least_conn;
    server 192.168.1.101;
    server 192.168.1.102;
}

三、健康检查与容错

1. 标记不可用服务器

server 192.168.1.103 down;

2. 备用服务器

server 192.168.1.104 backup;

3. 失败判定(商业版功能更多,开源版基础支持)

upstream backend {
    server 192.168.1.101 max_fails=3 fail_timeout=30s;
    server 192.168.1.102 max_fails=3 fail_timeout=30s;
}

四、HTTPS 负载均衡示例

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate     /etc/nginx/ssl/example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com.key;

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

五、常见排错

nginx -t           # 检查配置
journalctl -u nginx
tail -f /var/log/nginx/error.log

如果你需要:

  • Nginx + WebSocket 负载均衡
  • Docker 容器负载均衡
  • Keepalived + Nginx 高可用
  • Spring Boot / Java 项目示例

可以告诉我你的使用场景,我可以给你更具体的配置。

0 踩