上一篇中介绍了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 命令
除了通过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是记录请求日志
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。