Nginx核心要领二:Nginx进程模型
作者:互联网
上一篇中介绍了Nginx的安装,本篇将介绍Nginx的一些概念性内容和工作流程
Nginx进程模型
Nginx是多进程的,启动时会先启动一个 Master 进程,然后由 Master 进程启动 Worker 工作进程,Master主要作配置读取,维护 Worker 进程启动-销毁等,Worker进程对请求进行处理,Worker进程之间通过共享内存进行通信,启动Nginx时,默认设置Worker进程数为CPU的核心数。
我们熟悉的是 nginx 命令行,其实命令行执行的命令,是在给 Master 进程发送信号,然后 Master 给子 Worker进程发送信息,Worker进程收到信号后执行相关操作,如启动、关闭等
以 nginx -s reload 命令为例,对应nginx说说上图的处理流程
- 1.向 master 进程发送 HUP信号
- 2.master进程先检测nginx.conf文件是否配置正确
- 3.master进程打开新的监听端口
- 4.master进程用新配置启动新的 Worker 进程
- 5.master进程向老的 Worker进程发送 QUIT信号
- 6.老worker进程关闭监听句柄,处理完正在进行的请求后结束进程
再来熟悉下常用的 Nginx 命令
- 1.stop:立即关闭
- 2.quit:正常关闭,处理完成请求后关闭
- 3.reload:重新加载配置文件
- 4.reopen:重新打开日志文件
除了通过Nginx命令行执行外,还可以通过linux的 kill 命令向nginx发送信号,pid是master进程号
kill -s QUIT pid
Nginx框架处理流程
nginx对请求处理分为11个阶段,在这11个阶段中有处理的先后顺序,如果第一个阶段的模块处理并返回后,后面的阶段将不会再处理,灰色阶段是nginx框架做的事,我们无法处理,如下:
- 1.realip:可以拿到客户端真实IP
- 2.limit_req(限制每秒连接数)、limit_conn(限制每秒并发连接数)
- 3.access、auth_basic等是做验证的,可以让客户端输入用户和密码后才能请求
- 4.content阶段是对请求发往上游服务后并进行响应
- 5.log是记录请求日志
标签:nginx,模型,要领,Worker,Nginx,master,进程,Master 来源: https://blog.csdn.net/zhuyu19911016520/article/details/90548604