nginx权重配置应按服务器真实处理能力设定,优先依据cpu核数与内存容量初设比例(如2:1),再以压测qps归一化校准(如6:3:2);须显式声明weight、用小正整数、禁用ip_hash,并配max_fails与fail_timeout实现故障隔离。

为性能较强的服务器设置更高权重,核心是让 Nginx 懂得“按能分流量”,而不是平均摊派。权重不是越大越好,而是要反映真实处理能力的相对比例。
按硬件资源粗估权重比
用可量化的硬件指标做初始参考,避免拍脑袋定值:
- CPU 核心数是最常用依据:16 核服务器 vs 8 核服务器 → 权重比可设为 2:1
- 内存容量也关键:32GB vs 16GB → 同样支持 2:1 权重比
- 若两者叠加(如 16C/32G vs 8C/16G),算力差距更明显,可设为 4:2 或直接 2:1,保持小整数更稳
用压测结果校准权重
理论值要经真实流量验证。对每台后端单独压测同一接口,记录稳定支撑的 QPS:
- 服务器 A:QPS = 1200
- 服务器 B:QPS = 600
- 服务器 C:QPS = 400
- 归一化得比例 ≈ 6:3:2,直接作为 weight 值写入配置
配置时必须注意的关键细节
权重生效有前提,漏掉任一环节都可能让高配机器“空转”:
- 所有 server 行必须显式写 weight,否则默认为 1,会破坏预期比例
- 权重值用 小正整数(如 2、3、5),不用 100、200 等大数,收敛快、易调试
- 务必搭配 max_fails=3 fail_timeout=30s,故障节点自动剔除,避免拖累整体
- 不能和 ip_hash 同时启用——后者会完全忽略 weight 设置
上线后验证与微调
配置生效不等于效果到位,需观察真实分布:
- 通过 nginx stub_status 或第三方模块(如 vts)看各节点请求计数是否趋近权重比
- 检查 $upstream_response_time 日志字段,确认高权重节点响应时间确实更优
- 每次调整后观察 15–30 分钟,避开高峰时段操作











