Nginx多进程架构是面向高并发的精准工程设计:通过进程隔离实现单点失效不影响整体、无锁单进程内操作降低竞争开销、CPU核心绑定提升缓存命中率与延迟稳定性、轻量进程便于资源控制与横向扩展。
Nginx 的多进程架构不是为“撑场面”而存在,而是针对高并发场景做了精准工程权衡的结果。它不靠堆线程、也不靠复杂调度,而是用轻量、隔离、可预测的方式把硬件资源用到实处。
每个 worker 进程拥有独立内存空间和执行上下文,一个进程因异常(如段错误、内存越界)崩溃时,仅影响当前处理的少量连接,master 进程会立即拉起新 worker 补位。这种“单点失效、整体存活”的特性,让服务在面对恶意请求或偶发 bug 时仍保持可用性。
worker 进程之间不共享数据结构(如连接池、缓存句柄),无需加锁同步。所有关键操作(如 accept 新连接、读写 socket、访问 open_file_cache)都在单个进程内完成,避免了锁争用、上下文切换和内存屏障带来的性能损耗。
worker_processes 设为 CPU 物理核心数(或 auto),再配合 worker_cpu_affinity 绑定到指定核心,可让每个 worker 独占一个核心运行。这不仅提升 L1/L2 缓存命中率,也避免操作系统频繁迁移进程带来的 TLB 刷新和 cache line 冲突。
worker_processes 4; + worker_cpu_affinity 0001 0010 0100 1000;
每个 worker 是轻量级进程,启动/销毁成本远低于传统 fork-on-demand 模型。预生成固定数量 worker 后,不再动态增减,内存占用恒定,便于容量规划和容器化部署。