首页 > 其他 > 详细

nginx的工作流程

时间:2019-06-05 00:37:44      阅读:128      评论:0      收藏:0      [点我收藏+]

nginx请求处理流程

技术分享图片

 

nginx进程结构

master进程:是作为worker进程管理的

worker进程:处理真正的请求的而master进程则是管控这些进程的工作方式的;缓存是在多个worker进程共享数据的;进程间通信使用共享内存解决的,请求使用的缓存有worker管控的

cache magager进程 :缓存管理

cache loader 进程:缓存载入

nginx设计的哲学理念:为什么多进程而非多线程;因为线程之间是共享同一个进程空间的,当第三方模块出现异常时会导致nginx挂掉,而多进程就不会出现这样的问题

为什么worker进程会很多:因为nginx采用事件驱动的模型,它希望每个worker进程从头到尾占用一颗cpu,往往把worker进程数量配置根worker进程一致以外,还需要把每个worker进程与CPU绑定在一起,这样可以更好使用每个cpu上的CPU缓存,来减少缓存失效命中率。

 nginx进程间的信号管理

技术分享图片

reload流程

1.向master进程发送HUP信号(reload)

2.maseer 进程校验配置语法是否正确

3.master进程打开新监听的端口

4.master进程用新配置启动worker子进程

5.master进程向老worker子进程发送quit信号

6.老worker进程关闭监听句柄,并处理完当前连接后退出结束进程

技术分享图片

 

 热升级完整流程

1.将就的nginx文件缓存新的nginx文件。注意备份,及编译新版本nginx指定的路径要与就版本中一致

2.向master进程发送USR2信号

3.master进程会自己修改PID文件名,加后缀.oldbm

4.master进程用新的NGINX文件启动新的master进程

5.向老master进程发送quit信号,关闭老master进程;但老的master进程会保存下来

6.回滚:向老的master发送HUP,向新master发送QUIT信号

流程图

技术分享图片

针对HTTP请求优雅关闭work进程,如果设置了超时时间有一些连接会立即停止

技术分享图片

网络收发与nginx的事件对应关系;一个网络连接对应两个事件一个读事件一个写事件

技术分享图片

网络传输中的报文

技术分享图片

TCP协议与非阻塞接口

技术分享图片

nginx事件循环

 

技术分享图片

epoll模型

技术分享图片

 

 

 

 

 

 

 

 

 

 

 

nginx的工作流程

原文:https://www.cnblogs.com/rdchenxi/p/10977063.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!