Nginx学习笔记2--(极客时间-陶辉)

本文详细介绍了Nginx的多进程结构,重点讲解了Master进程和Worker进程的角色及信号管理。Master进程负责监控和管理Worker进程,支持TERM、INT、QUIT、HUP等信号处理。在Nginx的Reload流程中,实现了服务不停止的平滑升级。热升级流程只需替换binary文件,老的Master进程保持运行,确保服务连续性。

1⃣️ nginx进程结构

在这里插入图片描述
nginx是多进程结构模型,由master作为父进程,启动多个子进程,通过信号管理。

  • Master进程
    << 监控worker进程:CHLD(子进程终止的时候会向父进程发送CHLD信号,Master进程接受后可以立刻拉起wroker进程)
    <<管理worker进程,可以接受的信号
    ****TERM,INT : 立刻停止
    ****QUIT :优雅停止
    ****HUP :从载配置文件
    ****USR1 :从新打开日志文件
    ****USR2 :平滑升级可执行程序
    ****WINCH :从容关闭工作进程

  • Worker进程
    Worker进程也可以接受上面4个进程,一般都是对Master进程发送信号,Master进程再向Worker进程发送信号

  • nginx命令行(各命令对应的信号)
    reload:HUP(用kill直接发送信号)
    reopen:USR1
    stop:TERM
    quit:QUIT

?nginx的Master进程的PID会记录在logs目录的nginx.pid文件中。
?worker进程优雅的关闭,主要针对的是HTTP请求。代理websocker协议,TCP,UDP层的时候不能优雅推出。

  1. 设置定时器 worker_shutdown_timeout
  2. 关闭监听句柄 :保证要关闭的进程不再处理新的连接
  3. 关闭空闲连接 :为了利用最大化,会保存一些空闲的连接,这时会被关闭。
  4. 在循环中等待全部连接关闭:每发现一个请求处理完毕就会把这个连接关闭。超过设置的worker_shutdown_timeout的时间,会立即退出。
  5. 退出进程

2⃣️ Nginx Reload流程

reload
在这里插入图片描述
不停止服务,平滑升级。

3⃣️ 热升级流程

在这里插入图片描述
在这里插入图片描述
只替换binary文件。
老的Master进程一直存在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值