Nginx个人学习Linux

Nginx处理HTTP请求的11个阶段

2021-07-10  本文已影响0人  一个小运维
Nginx处理HTTP请求
1、POST_READ:

在 read 完请求的头部之后,在没有对头部做任何处理之前,想要获取到一些原始的值,就应该在这个阶段进行处理。这里面会涉及到一个 realip 模块。

2、SERVER_REWRITE:

和下面的 REWRITE 阶段一样,都只有一个模块叫 rewrite 模块,一般没有第三方模块会处理这个阶段。

3、FIND_CONFIG:

做 location 的匹配,暂时没有模块会用到。

4、REWRITE:

对 URL 做一些处理。

5、POST_WRITE:

处于 REWRITE 之后,也是暂时没有模块会在这个阶段出现。

确认用户访问权限的三个模块:
6、PREACCESS:

是在 ACCESS 之前要做一些工作,例如并发连接和 QPS 需要进行限制,涉及到两个模块:limt_conn 和 limit_req

7、ACCESS:

核心要解决的是用户能不能访问的问题,例如 auth_basic 是用户名和密码,access 是用户访问 IP,auth_request 根据第三方服务返回是否可以去访问。

8、POST_ACCESS:是在 ACCESS 之后会做一些事情,同样暂时没有模块会用到。
最后的三个阶段处理响应和日志:
9、PRECONTENT:

在处理 CONTENT 之前会做一些事情,例如会把子请求发送给第三方的服务去处理,try_files 模块也是在这个阶段中。

10、CONTENT:

这个阶段涉及到的模块就非常多了,例如 index, autoindex, concat 等都是在这个阶段生效的。

11、LOG:

记录日志 access_log 模块。

上一篇 下一篇

猜你喜欢

热点阅读