Nginx 架构以及工作流程图
Nginx 在是以守护进程的形式在后台运行,采用 多线程+异步非阻塞IO事件模型 来处理各种请求。多线程模型包括一个 master 进程,多个 worker 进程,一般 worker 进程个数是根据服务器 CPU 核数来决定的。master 进程负责管理 Nginx 本身和其他 worker 进程。
Master 进程的主要职责
- 读取并验证配置信息(nginx.conf)
- 创建,绑定,关闭套接字(IP + PORT)
- 启动,终止,维护 worker 进程的个数
Worker 进程的主要职责
- 处理连接和请求
- Worker 进程的个数由配置文件决定,一般和 CPU 个数相关,配置几个就有几个 Worker 进程。
Nginx 如何实现热部署
所谓热部署,就是修改配置文件 nginx.conf 后,不需要重启 nginx,不需要中断请求,就能让配置文件生效。
在修改完配置文件后,会重新生成新的 worker 进程,会以新的配置进行处理请求,而且新的请求也会交给新的 worker 进程处理,老的 worker 进程,会在执行完请求直接关闭。
<