# ============================================================ # Nginx 负载均衡 - 最少连接配置示例 # ============================================================ # # 功能说明: # - 选择当前活跃连接数最少的服务器 # - 适用于长连接或请求处理时间差异大的场景 # - 更合理的负载分配 # # Lolly 对应配置: # server: # proxy: # - path: "/api" # targets: # - url: "http://backend1:8080" # - url: "http://backend2:8080" # load_balance: "least_conn" # ============================================================ upstream backend { # 最少连接算法 # Lolly 对应: load_balance: "least_conn" least_conn; server backend1:8080; server backend2:8080; server backend3:8080; # 权重仍然有效(按连接数/权重比例) # server backend1:8080 weight=2; # 优先分配,但考虑连接数 keepalive 32; } server { listen 80; server_name leastconn.example.com; location /api { proxy_pass http:://backend; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } # 最少连接算法说明: # # 1. 工作原理: # - 每个服务器维护活跃连接计数 # - 新请求分配给活跃连接数最少的服务器 # - 如果多个服务器连接数相同,轮询选择 # # 2. 适用场景: # - WebSocket 连接(长连接) # - 文件上传/下载(请求处理时间差异大) # - 异构服务器(性能差异) # # 3. 与权重结合: # - 选择 (活跃连接数 / 权重) 最小的服务器 # - 权重越高,可承受更多连接 # # 4. 示例计算: # backend1: 活跃连接 10, 权重 2 -> 比值 5 # backend2: 活跃连接 5, 权重 1 -> 比值 5 # backend3: 活跃连接 3, 权重 1 -> 比值 3 # 选择 backend3