深入 Nginx 之事件驱动核心架构篇
![](https://filescdn.proginn.com/1ec60bdc48a0ace68ccc3b2c064d62ee/a8763ef678612f0878d05de69d91a079.webp)
- 前言 -
- 模块化设计 -
![](https://filescdn.proginn.com/c2611f0d75fc9393fa46dd656ae0d467/dbbc838d9bfe56bf0112668d9d5e3e6a.webp)
- 事件驱动架构 -
- 请求的多阶段异步处理 -
- 管理进程、多工作进程设计 -
Nginx 在启动后,会有一个 master 进程和多个 worker 进程。master 进程主要用来管理worker 进程,包括接收来自外界的信号,向各 worker 进程发送信号,监控 worker 进程的运行状态以及启动 worker 进程。
worker 进程是用来处理来自客户端的请求事件。多个 worker 进程之间是对等的,它们同等竞争来自客户端的请求,各进程互相独立,一个请求只能在一个 worker 进程中处理。worker 进程的个数是可以设置的,一般会设置与机器 CPU 核数一致,这里面的原因与事件处理模型有关。Nginx 的进程模型,可由下图来表示:
![](https://filescdn.proginn.com/1f518888be62c8f2565594fef4c4755b/0d70ecb266f94d9b4cab707bd89f5d35.webp)
![](https://filescdn.proginn.com/9b2cc039ec6e7df79a608781fbfd6d5d/9d40b0990348516409cc9f42add0ed9f.webp)
- 内存池的设计 -
作者:Jeffrey
来源:sf.gg/a/1190000018261096
![](https://filescdn.proginn.com/49707877485975b91660f2c44e2082e6/d07e94fcf6cc842b23ddf2cc7fb64fe0.webp)
评论