nginx 处理请求的11个阶段详解!
Posted Java高级架构师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx 处理请求的11个阶段详解!相关的知识,希望对你有一定的参考价值。
nginx的处理用户请求的11 个阶段
nginx将一个HTTP请求分为11个处理阶段,这样做让每个HTTP模块可以仅仅专注于完成一个独立,简单的功能。而一个请求的完整处理过程可以由多个HTTP模块共同合作完成。可以极大的提高多个模块合作的协同性,可测试性,可扩展性。换言之,nginx在处理每一个http请求,和配置文件上的顺序没有关系。
1 post-read
接受到完整的http头部后,读取请求内容阶段,nginx读取并解析完请求头之后就立即开始执行;
2 server-rewrite
3 find-config
配置查找阶段,根据请求uri匹配location表达式,这个阶段不支持nginx模块注册处理程序,而是由ngx_http_core_module模块来完成当前请求与location配置快之间的配对工作;
4 rewrite
5 post-rewrite
6 preaccess
访问权限检查准备阶段,http模块介入处理阶段,标准模块ngx_limit_req和ngx_limit_zone就运行在此阶段,前置可以控制访问的频率,后者限制访问的并发度
7 access
8 post-access
访问权限检查提交阶段;如果请求不被允许访问nginx服务器,该阶段负责向用户返回错误响应;
9 try-files
配置项try_files处理阶段
如果http请求访问静态文件资源,try_files配置项可以使这个请求顺序地访问多个静态文件资源,直到某个静态文件资源符合选取条件;
10 content
内容产生阶段,大部分HTTP模块会介入该阶段,是所有请求处理阶段中最重要的阶段,因为这个阶段的指令通常是用来生成HTTP响应内容的;
11 log
日志模块处理阶段,记录日志;
转载自:https://blog.90.vc/archives/375
·END·
以上是关于nginx 处理请求的11个阶段详解!的主要内容,如果未能解决你的问题,请参考以下文章
nginx 11个处理阶段 && nginx lua 8个处理阶段