Nginx是大型架构核心,下面我详解Nginx如何支撑千万级流量@mikechen
非阻塞异步 I/O (epoll 机制)

这是 Nginx 高性能的核心,在 Linux 环境下,Nginx 使用了 epoll(在 BSD/macOS 是 kqueue)。
传统模型:服务器必须死等一个 I/O 操作完成才能处理下一个,效率极低。
epoll 模型:这是一个“通知机制”。
当某个连接有数据可读或可写时,内核会通知 Nginx。
效果:一个 Worker 进程可以同时处理数万个连接。
而无需为每个连接分配独立的线程。绝大部分连接在“等待数据”时是不消耗 CPU 的。
多进程事件驱动架构

Nginx 并没有采用传统 Web 服务器(如早期的 Apache)“一个请求一个线程”的模式。
因为线程切换和内存开销在千万级流量下会瞬间拖垮系统。
Master 进程:充当“指挥官”,负责管理 Worker 进程、接收系统信号、重载配置。
Worker 进程:真正的“搬砖工”。通常设置与 CPU 核心数一致。
通过 CPU 亲和性 (Affinity) 绑定,避免进程在不同核心间切换产生的缓存失效。
优势:每个进程内部是单线程运行的,没有锁的竞争,极大提高了效率。
架构与水平扩展

单点极限:通过事件模型 + 内核调优 + 缓存。
单机可冲到几十万连接、数十万 QPS,是集群扩展的基本单元能力。
集群形态:多入口(DNS / SLB / LVS)+ 多 Nginx 节点 + 后端服务池。
配合限流、熔断、缓存、多机房部署,整体就能演进到“千万级流量可承载”的工程体系,而不是依赖某一台 Nginx“硬抗”。
高效的连接与资源管理

为支撑海量连接,Nginx 在连接管理上做了多项优化:连接复用(keepalive)。
HTTP/2 与 HTTP/3 的多路复用、缓存与限流(limit_conn/limit_req)、连接超时与缓冲区调优(sendfile、tcp_nopush、tcp_nodelay 等)。
这些措施减少了建立/关闭连接的频率、降低握手成本。
优化带宽使用与内存占用,从而在大流量下保持系统稳定。
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注作者「mikechen」公众号,获取更多技术干货!
后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》