worker_processes 必须在 Nginx 主配置文件最外层(main 上下文)设置,不可置于 http、server 或 events 块内;应根据真实 CPU 核心数或容器 vCPU 数合理配置,推荐使用 auto 模式,并可选配 worker_cpu_affinity 实现 CPU 亲和性绑定,最后需通过 nginx -t 和 nginx -s reload 验证生效。

直接在 Nginx 主配置文件的最外层(即 main 上下文)设置 worker_processes 指令,不能放在 http、server 或 events 块内部。
确认当前 CPU 核心数
避免凭经验瞎设,先查真实可用逻辑 CPU 数:
-
grep -c ^processor /proc/cpuinfo—— 输出数字即逻辑核总数 -
nproc—— 更简洁等效命令 - 容器环境务必检查:
cat /sys/fs/cgroup/cpu/cpu.cfs_quota_us和/sys/fs/cgroup/cpu/cpu.cfs_period_us,算出实际分配 vCPU 数(如 quota=200000, period=100000 → 2 vCPU)
编辑 nginx.conf 设置值
用 vim 或 nano 打开主配置文件(二进制安装默认路径为 /usr/local/nginx/conf/nginx.conf),在开头附近、events 块之前添加或修改:
-
worker_processes 4;—— 手动指定为 4 个进程(适合 4 核物理机) -
worker_processes auto;—— 启动时自动读取逻辑核数并匹配(推荐初用) -
worker_processes auto 2;—— auto 模式下保底至少启 2 个(单核虚拟机也生效)
配合 CPU 亲和性绑定(可选但建议)
减少进程跨核调度开销,尤其在高并发场景下:
- 必须与
worker_processes数量严格一致 - 4 个进程对应 4 核:
worker_cpu_affinity 0001 0010 0100 1000; - 2 个进程:
worker_cpu_affinity 01 10; - 支持
auto简写(Linux 3.2+):worker_cpu_affinity auto;
改完必须验证和重载
配置不是写完就生效:
- 先语法检查:
nginx -t - 再平滑重载:
nginx -s reload - 验证是否运行预期数量:
ps -ef | grep nginx | grep -v grep | wc -l - 看 CPU 分布:
ps -eo pid,psr,comm | grep nginx(各 worker 应落在不同 CPU 编号上)











