Nginx worker进程怎么优雅的关闭
-
- 给 worker进程设置worker_shutdown_timeout参数N(超过N秒后,如果nginx进程仍然没有处理完当前任务,则直接强制退出)
-
- 关闭监听句柄,不在接收新的请求进来,当前请求处理完毕之后关闭
-
- 关闭空闲连接,将空闲未工作的进程关闭
-
- 循环上述三步,在循环中等待全部连接关闭
-
- 退出进程
TCP/IP协议报文结构
事件驱动
Nginx 是一个事件驱动的框架,所谓事件主要指网络事件:写事件,读事件。
Nginx 事件循环
了解了事件循环后,就不难理解有些第三方模块处理事件耗时过长,占用大量CPU时间导致事件堆积的问题了,所以往往CPU的占用都是以时间片形式运行计算,一个事件的处理可能要占用若干个