Nginx并发连接数worker_connections调优
时间:2026-11-15 07:13 作者:emer 分类: Nginx
前言
高并发下 Nginx 报 too many open files、连接被拒,和 worker 进程数、worker_connections 及系统文件描述符上限有关。本文讲解 worker_processes、worker_connections 计算、ulimit 配合和调优平衡点。
操作步骤
1. 设置 worker 进程数(通常等于 CPU 核数)
worker_processes auto;
2. 每个 worker 最大连接数
events {
worker_connections 10240;
}
3. 打开文件描述符上限
worker_rlimit_nofile 65535;
4. 系统层同步抬高 limit
ulimit -n 65535
并写入 /etc/security/limits.conf 永久生效。
5. 计算理论并发
反向代理每个连接占两个 FD(客户端+后端),总并发 ≈ worker_processes × worker_connections / 2。
6. 校验并重载
nginx -t && nginx -s reload
7. 实时连接数查看
nginx -V 2>&1 | grep -i limit
常见坑
- 只调 worker_connections,没抬 ulimit,仍报打开文件过多。
- worker_processes 写死成 1,多核浪费。
- 连接数盲目调到几十万,受内存和 FD 上限约束。
- 反代按双倍 FD 计算,别用单连接口径估算。
- 系统 limits.conf 未登录生效,需重启或重新登录。
- keepalive 长连接占用 FD,空闲连接过多反而压满。
- 单机瓶颈还在后端,调 Nginx 解决不了。
总结
worker_processes auto 匹配核数,worker_connections 抬到万级,worker_rlimit_nofile 和系统 ulimit 同步抬高。反代按双倍 FD 估算并发。参数受内存与后端能力约束,不是越大越好,压测观察再定。
遇到问题加QQ23979811 协助处理
标签: Nginx 性能 并发 worker_connections