lolly/docs/config/load-balancing/least-conn.conf
xfy 6543422281 docs: 添加 Nginx 配置和 Lua 脚本示例文档
- config: 反向代理、缓存、负载均衡、安全、SSL 等配置模板
- lua: API 网关、认证、动态路由、限流、WebSocket 等脚本示例

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 17:59:22 +08:00

69 lines
1.9 KiB
Plaintext

# ============================================================
# 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