温馨提示×

nginx配置负载均衡的方法有哪些

小樊
63
2025-08-28 01:53:36
栏目: 云计算

Nginx配置负载均衡主要有以下6种方法,通过upstream模块定义后端服务器组并指定策略,再通过proxy_pass指令转发请求:

  1. 轮询(默认)
    按顺序依次将请求分配到后端服务器,适用于服务器性能均衡的场景。

    upstream backend {
        server 192.168.1.1:80;
        server 192.168.1.2:80;
    }
    
  2. 加权轮询
    为服务器设置权重,权重越高分配的请求越多,适用于服务器性能不均的场景。

    upstream backend {
        server 192.168.1.1:80 weight=3;  # 权重3
        server 192.168.1.2:80 weight=1;  # 权重1
    }
    
  3. IP哈希(ip_hash)
    根据客户端IP的哈希值固定请求到同一台服务器,适用于需要会话保持的场景(如登录状态)。

    upstream backend {
        ip_hash;
        server 192.168.1.1:80;
        server 192.168.1.2:80;
    }
    
  4. 最少连接(least_conn)
    将请求分配给当前连接数最少的服务器,适用于长连接或请求处理时间差异大的场景(如WebSocket)。

    upstream backend {
        least_conn;
        server 192.168.1.1:80;
        server 192.168.1.2:80;
    }
    
  5. 响应时间加权(fair,第三方模块)
    根据服务器响应时间动态分配请求,响应时间短的优先,需安装ngx_http_upstream_fair_module模块。

    upstream backend {
        fair;
        server 192.168.1.1:80;
        server 192.168.1.2:80;
    }
    
  6. URL哈希(url_hash,第三方模块)
    根据请求URL的哈希值分配请求,使相同URL的请求落到同一台服务器,适用于缓存服务器。

    upstream backend {
        hash $request_uri;  # 需安装第三方模块
        server 192.168.1.1:80;
        server 192.168.1.2:80;
    }
    

补充说明

  • 可通过max_failsfail_timeout参数设置服务器故障检测(如30秒内失败3次则标记为不可用)。
  • 配置完成后需验证语法并重载Nginx:sudo nginx -t && sudo nginx -s reload

0