LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

Nginx如何抗住百万并发?4大核心技术解析!

admin
2025年6月28日 20:32 本文热度 21

Nginx是大型架构的必备中间件,下面我就全面来详解Nginx抗住百万并发背后的技术


Nginx核心架构

Nginx 采用经典的 Master-Worker 进程模型,这种设计是其高性能、和高可用性的基石。

整体架构,如下图所示:

  1. +-------------+
  2. |Master|
  3. +------+------+
  4. |
  5. +------------+------------+
  6. ||
  7. +----+----++-----+-----+
  8. |Worker1||Worker2|
  9. +----+----++-----+-----+

Master 进程,主要负责读取、和解析配置文件,以及,管理 Worker 进程的启动、关闭和重启…等等。

Worker 进程,处理客户端的请求,比如: HTTP 请求、TCP/UDP …连接等等等。

通常,Worker 进程的数量会配置为与服务器的 CPU 核心数相同、或两倍,以便充分利用多核 CPU 的并行处理能力。

多个 Worker 进程可以并行处理请求,充分发挥多核 CPU 的性能。

 

高性能事件驱动模型

高性能事件驱动模型,这是 Nginx 能够处理百万并发的核心。

与传统的“一个连接一个线程/进程”模型不同,Nginx 采用事件驱动模型。

如下图所示:

  1. 1. epoll_wait 等待就绪事件(如连接/读/写)
  2. 2.就绪事件触发,执行对应回调 handler(如读取数据)
  3. 3.继续监听下一批事件

事件驱动模型的核心是:程序不再被动地等待任务、或按照固定的流程执行。

而是主动地监听,并响应各种“事件”的发生。

比如:当一个事件发生时(如网络数据到达、定时器触发、用户操作…等),程序会执行预先注册好的回调函数来处理它。

Nginx 并不“主动干活”,而是“事件来了才响应”,这大幅减少了空耗、与阻塞。

 

IO多路复用

事件驱动模型的底层支撑,就是操作系统提供的 I/O 多路复用机制。

Nginx 在 Linux 下默认使用 epoll,性能极高。

epoll 采用了一种“事件就绪通知”机制,当某个文件描述符上的事件就绪时(例如,数据可读)。

内核会主动,将其添加到 epoll 实例维护的一个就绪列表(ready list)中。

epoll 相比 select/poll,不仅能支持百万连接,而且是“事件通知机制”,避免无效遍历。

所以,I/O 多路复用的价值,可以大幅提升并发能力。

 

异步非阻塞 I/O

Nginx 的所有 I/O 操作都是 异步非阻塞的,这意味着:不需要线程等待数据,所有 read/write 都立刻返回。

这样,可以确保 Nginx 的 Worker 进程,永远不会在 I/O 操作上被挂起,它总是忙于处理那些已经就绪的事件。

  1. 客户端连接 socket 注册读事件(非阻塞)等数据到达
  2. 数据到达触发事件回调读取注册写事件
  3. 数据写回关闭或保持连接(Keepalive

总之,异步非阻塞 I/O ,是与事件驱动模型、I/O 多路复用紧密结合,这是Nginx实现高性能的核心。


阅读原文:原文链接


该文章在 2025/7/2 0:30:46 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved