暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Nginx服务流程

我为啥没洁癖 2024-03-25
28

请求处理流程

  • Read Request Headers:解析请求头。
  • Identify Configuration Block:识别由哪一个 location 进行处理,匹配 URL。
  • Apply Rate Limits:判断是否限速。例如可能这个请求并发的连接数太多超过了限制,或者 QPS 太高。
  • Perform Authentication:连接控制,验证请求。例如可能根据 Referrer 头部做一些防盗链的设置,或者验证用户的权限。
  • Generate Content:生成返回给用户的响应。为了生成这个响应,做反向代理的时候可能会和上游服务(Upstream Services)进行通信,然后这个过程中还可能会有些子请求或者重定向,那么还会走一下这个过程(Internal redirects and subrequests)。
  • Response Filters:过滤返回给用户的响应。比如压缩响应,或者对图片进行处理。
  • Log:记录日志。

Reload流程

  • 向Master进程发送HUP信号(reoload命令)
  • master进程校验配置语法是否正确
  • master进程打开新的监听端口
  • master进程用新的配置启动新的worker子进程
  • master向老的worker子进程发送QUIT信号
  • 老woker进程关闭监听句柄,处理完当前连接后结束进程

热升级流程

  • 把旧的ngixn文件换成新的nginx文件(旧的先备份)
  • 向master发送USR2信号
  • master进程修改pid文件名,加后缀.oldbin
  • master进程用新nginx文件启动新的master进程
  • 可选,向旧的master进程发送WINCH信号,让旧的master进程关闭woker进程不再处理请求。
  • 升级:向老master进程发送QUIT信号,关闭老master进程,升级完毕。
  • 回滚:向老master进程发送HUP信号,向新master进程发送QUIT,回滚完成。或者直接进行升级,回滚使用备份的nginx文件再进行一次反向升级操作完成回滚。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论