nginx的工做流程

nginx请求处理流程nginx

 

nginx进程结构缓存

master进程:是做为worker进程管理的网络

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

cache magager进程 :缓存管理ui

cache loader 进程:缓存载入线程

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

为何worker进程会不少:由于nginx采用事件驱动的模型,它但愿每一个worker进程从头至尾占用一颗cpu,每每把worker进程数量配置根worker进程一致之外,还须要把每一个worker进程与CPU绑定在一块儿,这样能够更好使用每一个cpu上的CPU缓存,来减小缓存失效命中率。blog

 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模型

 

 

 

 

 

 

 

 

 

 

相关文章
相关标签/搜索