Nginx 进阶 - 架构基础篇

Nginx 架构基础篇

1、Nginx的请求处理流程

http状态机:等待上游epoll请求,当内存满额时,使用线程池磁盘阻塞调用。

2、nginx的进程结构

ps aux | grep nginx

master作为父进程,有很多子进程,nginx的父子进程是通过信号管理的。

kill -SIGNUP 9170

SIGNUP与reload作用相同,都是管理信号的命令。

3、reload 重载配置文件的真相

  • 01.向master进程发送HUP信号
  • 02.master进程校验配置语法是否正确
  • 03.master进程打开新的监听端口
  • 04.master进程用新配置启动新的worker子进程
  • 05.master进程向老worker子进程发送quit信号
  • 06.老worker进程关闭监听句柄,处理完当前连接后结束进程

4、优雅的关闭Nginx

  • 01.设置定时器
  • 02.关闭监听句柄
  • 03.关闭空闲连接
  • 04.在循环中等待全部连接关闭
  • 05.退出进程

5、阻塞/非阻塞

阻塞/非阻塞 是指操作系统或者底层的C库提供的方法或者是系统调用。在调用这个方法的时候会进入sleep状态,当前的条件不满足的情况下,操作系统把当前进程主动的切换成另外进程。这样就是阻塞方法。

6、nginx间的通讯方式

基础同步工具

  • 信号
  • 共享内存

高级通讯方式

  • Slab内存管理器
发布了98 篇原创文章 · 获赞 185 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/xuezhiwu001/article/details/99688510