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

最新文章

  1. 比较全的JS checkbox全选、取消全选、删除功能代码
  2. VS中两个常用辅助工具
  3. 编译android源码官方教程(4)开始编译
  4. 在Action中以Struts2的方式输出JSON数据
  5. HtmlHelper
  6. 《APUE》第四章笔记(2)
  7. linux PCI设备初始化过程
  8. Oracle Tnsping慢
  9. win7 进程kill
  10. windows2012R2虚拟机快速激活的方法
  11. 飞翔(LIS变形)
  12. C++PrimerPlus第6版 第四章——复合类型
  13. 一个页面多个HTTP请求 页面卡顿!
  14. 如何避免在IE内核时,按BackSpace时进行网页会进行回退
  15. Linux查看机器负载
  16. Python 基于Python实现的ssh兼sftp客户端(下)
  17. 【SpringBoot】SpringBoot2.0响应式编程
  18. 分享一款Markdown的css样式
  19. Go环境下,编译运行etcd与goreman集群管理(1)
  20. S5PV210 移植无线wifi网卡 MT7601

热门文章

  1. 洛谷P3382 【模板】三分法(三分找凹凸点)
  2. 天梯赛L3-001. 凑零钱(01背包记录物品)
  3. 【异步编程】Part3:取消异步操作
  4. MapReduce编程模型
  5. linux命令之上传文件和下载文件
  6. linux命令之grep,find
  7. IT 面试题
  8. 解决resignFirstResponder或者endEditing无效的办法
  9. Django之用户认证—auth模块
  10. (译)Minimal Shader(最小的着色器)