Nginx多进程架构核心在于Master-Worker分工、CPU绑定、内核协同与资源隔离;Master仅管理配置与进程,Worker独占CPU核心、独立事件循环,通过reuseport和系统参数调优实现高效并发。
Nginx 的多进程架构不是简单地“开多个进程”,而是通过 Master-Worker 分工、CPU 绑定、内核协同和资源隔离,把 CPU、内存、文件描述符、网络连接这几类关键资源真正拧成一股合力。核心不在数量,而在整合逻辑。
Master 进程不处理请求,只做三件事:读取并校验配置、启动/监控 Worker、响应信号(如 HUP 重载、USR2 平滑升级)。它不占 CPU 时间片,也不持有客户端连接或缓冲区。所有计算、IO、内存分配都由 Worker 承担——这种严格分离,让资源调度边界清晰,不会因管理逻辑干扰请求处理路径。
设 worker_processes auto 是最稳妥的做法。Nginx 启动时会读取系统实际可用的物理 CPU 核心数(非超线程数),并创建对应数量的 Worker。这样每个 Worker 都能独占一个核心,避免调度争抢和缓存失效。
多个 Worker 监听同一端口,但连接如何落到具体进程上,并不由 Nginx 内部算法决定,而是依赖操作系统协作:
Worker 进程再多,若系统层面卡住,照样无法发挥效能。必须同步打通三道关卡:
/etc/security/limits.conf 中为 nginx 用户提升 soft/hard nofile 限制net.core.somaxconn(如设为 65535),避免 listen 队列溢出丢连接net.ipv4.tcp_tw_reuse = 1,加快端口回收,支撑高并发短连接场景不复杂但容易忽略。