NGINX学习笔记-架构
2019-07-14 本文已影响2人
IBoya
Nginx的请求处理流程

Nginx进程结构

为什么nginx使用多进程而不使用多线程
线程之间共享同一个地址空间,所以当一个第三方模块引发了一个地址空间导致的段错误时,在地址越界出现时,就会导致整个nginx进程全部挂掉
Nginx进程管理信号

Nginx reload 流程


老的worker在异常情况下可能不会退出,新版本中提供worker_shutdown_timeout,
Nginx 热升级流程


优雅的关闭worker进程

当在第4步 循环关闭连接时达到worker_shutdown_timeout 设置的时间时 后面的连接会直接关闭
网络传输



Nginx 事件循环

为什么nginx 不能容忍三方模块长时间占用大量的cpu进行计算
epoll的优劣和原理


请求切换

每次进程切换 cpu消耗的时间大约5微妙
时间片和优先级
阻塞与非阻塞



模块



连接池



所有worker进程协同工作的关键




Nginx 容器



bucket size 对齐
主流cpu l1 l2 l3 缓存
红黑树



