深入理解Nginx:(3) Nginx 调用 HTTP 模块的过程

文章目录


Nginx 调用 HTTP 模块的过程,可以从一张简化的时序图开始。
在这里插入图片描述
上图只保留了调用主干,省略了许多异步调用,忽略了多个不同的处理阶段,仅表示了一个典型请求的处理过程中主要模块被调用的流程。

从上图中可以看到,worker 进程会在一个 for 循环语句里反复调用事件检测网络事件。当事件模块检测到某个客户端发起的 TCP 请求时(接收到 SYN 包),将会为它建立 TCP 连接,成功建立连接后根据 nginx.conf 文件中的配置会交由 HTTP 框架处理。HTTP 框架试图接收完整的 HTTP 头部,并在接收到完整的 HTTP 头部后将请求分发到具体的 HTTP 模块中处理。这种分发策略时多样化的,其中最常见的是根据请求的 URI 和 nginx.conf 里 location 配置项的匹配度来决定如何分发。HTTP 模块在处理请求的结束时,大多会想客户端发送响应,此时会自动地依次调用所有的 HTTP 过滤模块,每个过滤模块可以根据配置文件决定自己的行为。

参考:

  • 《深入理解Nginx》
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值