您的位置:首页 > 运维架构 > Nginx

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

2019-04-20 00:41 274 查看

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流程



不停止服务,平滑升级。

3⃣️ 热升级流程



只替换binary文件。
老的Master进程一直存在。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: