9_Nginx_reload、worker关闭、事件循环等流程

本文详细介绍了Nginx的reload过程,包括master进程收到HUP信号后的操作,如新配置加载、worker进程的优雅关闭。同时,探讨了worker进程在关闭时的步骤,如设置关闭超时和等待连接关闭。此外,还讨论了网络收发与Nginx事件循环的关系,以及epoll在高并发场景下的优势。最后,提到了CPU的时间片切换和上下文切换的概念。
摘要由CSDN通过智能技术生成


reload 流程

  • 向 master 进程发送 HUP 信号(reload 命令)
  • master 进程校验语法是否正确;
  • master 进程打开新的监听端口; linux 系统子进程会继承父进程所有已经打开的端口
  • master 进程用新配置启动新的 worker 子进程;
  • master 进程向老 worker 子进程发送 QUIT 信号;
  • 老worker 进程关闭监听句柄, 处理完当前连接后结束进程;

worker 进程 优雅的关闭

  • 设置定时器: worker_shutdown_timeout;
    • 老worker 进程退不掉时(web_socket/tcp),配置 worker_shutdown_timeout: 老 worker 子进程退出超时时间;
  • 关闭监听句柄;
  • 关闭空闲连接;
  • 在循环中等待全部连接关闭;连接关闭超时则强制关闭;
  • 退出进程;

网络收发与Nginx 事件间的对应关系

  • 以太网 MTU 默认1500字节
  • 读事件: accept 建立连接;read 读消息; 请求建立tcp连接事件-accept; tcp连接可读事件-read; tcp 连接关闭事件-read
  • 写事件:write
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值