Nginx是大型架构核心,下面我详解Nginx百万级高并发技术@mikechen
异步非阻塞
首先,异步事件驱动模型是Nginx性能的基石,决定了它能把连接管到百万级而不“卡死”。

传统阻塞式服务器(如简单的 select 模型)每来一个连接就开一个线程/进程。
100 万并发意味着 100 万条线程,上下文切换成本直接爆炸。
Nginx 用的是异步非阻塞 + I/O多路复用。
通过操作系统提供的高效事件通知接口(如epoll、kqueue),将连接的读写事件以回调方式处理。
从而避免了,传统线程/进程模型中因阻塞等待,导致的大量上下文切换与资源浪费。
该模型使单个工作进程能够同时管理成千上万的并发连接,显著提高并发处理能力和资源利用率。
Master‑Worker 进程模型
第二个核心技术是 Nginx 的多进程架构,天然适合多 CPU 核心,把“百万并发”分摊到多条 Worker 上去处理。
如下图所示:

worker_processes 16; # 一般设为 CPU 核数
events {
worker_connections 10240; # 每个 Worker 支持 1w+ 连接
use epoll; # 使用 epoll 事件模型
}
主进程负责初始化、配置管理与信号处理,多个工作进程承担请求处理。
工作进程通常以独立进程形式运行,利用多核CPU并行处理请求,同时进程隔离增强了容错性。
通过合理配置工作进程数量(通常与CPU核数匹配或略高),Nginx能够线性扩展吞吐量并保持低延迟。
零拷贝等技术
在高并发下载、或大文件传输场景下,传统的 I/O 会导致数据在内核缓冲区和用户缓冲区之间多次拷贝,浪费 CPU。

sendfile (零拷贝):Nginx 利用 Linux 的 sendfile 系统调用。
数据直接在内核空间完成从磁盘到网卡驱动的转移,完全不经过用户态内存。
这不仅节省了内存带宽,还大幅降低了 CPU 消耗。
一句话总结:
零拷贝解决的是:如何减少数据传输成本。
高效的内存管理
最后,高效的内存与连接复用机制进一步降低了开销。

Nginx内部采用连接池、缓冲区重用和小对象内存分配策略,减少频繁的内存分配与释放带来的开销。
此外,通过TCP的长连接与连接复用(keep-alive)机制,减少建立与关闭连接的成本。
对于静态内容与缓存命中,Nginx还可结合内存缓存与文件缓存,加速响应并减轻后端压力。