- config: 反向代理、缓存、负载均衡、安全、SSL 等配置模板 - lua: API 网关、认证、动态路由、限流、WebSocket 等脚本示例 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
69 lines
1.9 KiB
Plaintext
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 |