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