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进程一直存在。

Nginx学习笔记2--(极客时间-陶辉)相关推荐

  1. Nginx学习笔记4--(极客时间-陶辉)

    main http { #HTTP模块upstream { ... } #HTTP模块自己的配置块split_clients {...} map {...}geo {...}server { #根据域 ...

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

    nginx官方文档 nginx中文文档 nginx模块 ?nginx源码的/objs/ngx_modules.c中*ngx_modules[]数组代表了编译进nginx的模块. nginx连接池 ?每 ...

  3. Nginx学习笔记5--(极客时间-陶辉)

    正则表达式 ?\ 转意字符:取消原字符的特殊含义 ?()分组与取值$ ?验证正则表达式工具:pcretest 找到处理请求的server指令块 server_name指令 指令可以跟多个域名,第一个是 ...

  4. 【算法笔记】极客时间 算法面试通关40讲 笔记  覃超

    [算法笔记]极客时间 算法面试通关40讲 覃超 [算法笔记]极客时间 算法面试通关40讲 覃超 相关链接 在leetcode 上的题号 数组.链表: (堆)栈stack.队列queue 优先队列 哈希 ...

  5. 安卓学习笔记汇总----极客学院安卓教学视频观看所做的笔记和自己的理解

    原创内容,转载注明出处 这个笔记是看视频总结加自己的理解,可能会有差错或不对的地方,欢迎指正,大家共同进步嘛.哈哈哈.另外就是代码片段我直接截图上传了.不便之处请多见谅.如果对安卓开发有兴趣,可以加我 ...

  6. 极客时间和极客学院_极客奔跑

    极客时间和极客学院 I'm not a natural runner. I'm reasonably fit given that I spend most of the day sat in my ...

  7. 极客时间计算机组成原理学习笔记

    文章目录 0章-我对学计算机组成原理的思考 学习底层知识对于技术成长来说是复利行为 计算机组成原理是计算机科学的超级目录 第一章 冯诺依曼 在极客时间购买了计算机组成原理的blog专栏,尝试写一下笔记 ...

  8. 极客时间学习笔记-左耳听风

    本文笔记全部来自<极客时间-左耳听风> 2018-09-21 弹力设计篇之"幂等性设计" Twitter 的 Snowflake 就是一个比较好用的全局 ID实现. P ...

  9. 极客时间《Java并发编程》学习笔记

      该领域是跟着"极客时间"平台的课程<Java并发编程>入门的,讲师是王宝令.说实话,这个领域如果抱着大部头的书就啃的话,由于缺少实践很难会建立一个体系,即不知道为什 ...

最新文章

  1. 面试命中率90%的点 —— MySQL锁
  2. redis数据类型_认识Redis与Redis的数据类型
  3. 加计18-3李元龙第一次作业
  4. Java一分钟 || Docker因权限问题无法启动Springboot怎么办
  5. 4.Python标准库_文件管理 (部分os包,shutil包)
  6. 【splay】hdu 4453 2012杭州赛区A题
  7. 拔掉机器人的一条腿,它还能学走路?| 三次元里优化的DRL策略
  8. Flask 模版(四)- 时间 Flask-Moment
  9. FPGA与CPLD的区别
  10. Quartz学习(一)
  11. python-PIL-16bit-灰度图像生成-tiff
  12. English_do
  13. iOS app发布ERROR ITMS-90096
  14. java计算长方体面积和周长
  15. echarts树状图怎么设置主节点和子节点的距离_教你秒懂CAD出图比例正确设置技巧...
  16. spring boot 项目重新搭建----------mvc配置:拦截器
  17. (原创文章)羊毛党何去何从
  18. 如果你没读懂《骇客帝国》
  19. 取中文拼音首字母,提供了多音字的选择 js javascript c# java(转)
  20. 网络游戏防变速齿轮外挂

热门文章

  1. Centos 7.3桌面版报错oh no Something has gone wrong
  2. java中读取mp3文件_java读取mp3文件
  3. 什么是Makefile?
  4. 安装Visual studio 2010 Tools For office Runtime时找不到vc_red.msi报错
  5. 51Nod-1371-填数字
  6. 计算机课用不用带眼镜,上网课要戴防蓝光眼镜吗?
  7. PX4使用Optitrack进行室内定位
  8. ROS和Optitrack通信
  9. 同位素标记氨基酸,聚氨基酸,PEI,聚合物,抑制剂,离子液体,生物素等
  10. html5图标经过效果,17种 HTML5字体图标点赞动画特效源码