当请求进入Nginx后,每个HTTP执行阶段的作用
| 阶段顺序 | 阶段名称 | 作用 |
|---|---|---|
| 1 | NGX_HTTP_POSTREAD_PHASE = 0 | 接收并读取请求阶段 |
| 2 | NGX_HTTP_SERVER_REWRITE_PHASE | 修改url阶段,通常有重定向和变量设置的操作 |
| 3 | NGX_HTTP_FIND_CONFIG_PHASE | 查找URL对应的配置,如匹配location |
| 4 | NGX_HTTP_REWRITE_PHASE | 在匹配到对应的location后,再次进入修改URL阶段 |
| 5 | NGX_HTTP_POST_REWRITE_PHASE | 检查URL是否执行过阶段4,如果执行过,就会重新执行阶段3,每个请求的最大检查次数是10,超过10次就会报错 |
| 6 | NGX_HTTP_PREACCESS_PHASE | 一般用来在请求前设置对资源的控制,例如限速 |
| 7 | NGX_HTTP_ACCESS_PHASE | 控制访问权限,例如限制某个IP地址的访问或外层密码的登录 |
| 8 | NGX_HTTP_POST_ACCESS_PHASE | 验证阶段7的权限控制的结果 |
| 9 | NGX_HTTP_TRY_FILES_PHASE | 只有当使用try_files指令时才会生效 |
| 10 | NGX_HTTP_CONTENT_PHASE | 处理HTTP请求内容的阶段,一般会和后端服务器进行交互 |
| 11 | NGX_HTTP_LOG_PHASE | 日志请求阶段 |
当请求进入Nginx后,每个HTTP执行阶段的作用的更多相关文章
- javascript引擎执行的过程的理解--执行阶段
一.概述 同步更新sau交流学习社区(nodeJSBlog):javascript引擎执行的过程的理解--执行阶段 js引擎执行过程主要分为三个阶段,分别是语法分析,预编译和执行阶段,上篇文章我们介绍 ...
- jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法
jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Objec ...
- Nginx 配置指令的执行顺序(十)
运行在 post-rewrite 阶段之后的是所谓的 preaccess 阶段.该阶段在 access 阶段之前执行,故名preaccess. 标准模块 ngx_limit_req 和 ngx_lim ...
- Nginx 配置指令的执行顺序(九)
紧接在 server-rewrite 阶段后边的是 find-config 阶段.这个阶段并不支持 Nginx 模块注册处理程序,而是由 Nginx 核心来完成当前请求与 location 配置块之间 ...
- Nginx 配置指令的执行顺序(七)
来看一个 ngx_static 模块服务磁盘文件的例子.我们使用下面这个配置片段: location / { root /var/www/; } 同时在本机的 /var/w ...
- Nginx 配置指令的执行顺序(四)
ngx_lua 模块提供了配置指令 access_by_lua,用于在 access 请求处理阶段插入用户 Lua 代码.这条指令运行于 access 阶段的末尾,因此总是在 allow 和 deny ...
- Nginx 配置指令的执行顺序(一)
大多数 Nginx 新手都会频繁遇到这样一个困惑,那就是当同一个 location 配置块使用了多个 Nginx 模块的配置指令时,这些指令的执行顺序很可能会跟它们的书写顺序大相径庭.于是许多人选择了 ...
- Nginx执行阶段
Nginx 介绍 Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮 ...
- Nginx配置指令的执行顺序
rewrite阶段 rewrite阶段是一个比较早的请求处理阶段,这个阶段的配置指令一般用来对当前请求进行各种修改(比如对URI和URL参数进行改写),或者创建并初始化一系列后续处理阶段可能需要的Ng ...
随机推荐
- 关于 'chromedriver' executable needs to be in PATH 的解决办法
用 chrome 浏览器跑 selenium,执行以下脚本: from selenium import webdriverdr=webdriver.Chrome()dr.maximize_window ...
- JSP知识总结
day11 JSP入门 1 JSP概述 1.1 什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态资源.它与html页面的作用是相同的,显示数据和获取数据. 1. ...
- gn-build
I'm not completely sure from the error you describe but it sounds like you don't have a .gn file in ...
- jenkins构建:通过testng.xml构建项目
1.项目的pom.xml中build下添加maven插件,xmlFileName为可变参数 2.jenkins新建maven项目 构建脚本: 原文:https://www.jianshu.com/p/ ...
- CentOS单机安装FastDFS&整合Nginx
单机安装 一 准备工作 准备linux服务器或虚拟机,这里是虚拟机,操作系统CentOS 6.4 Tracker 和 Storage 安装在一台机器上 FastDFS 5.08版本 1,准备软件 软件 ...
- xargs 用法理解
原来一直不理解,linux shell下 xargs和 管道的区别: 1.管道在linux shell用得比较广泛,管道常常用来组合两个及以上的命令,共同完成一个功能: 比如:我们要统计某一个文件有多 ...
- C语言——初见指针
指针 指针是存放变量地址的变量. 由此我们可以知道了,指针存放的是变量地址且只能应用于内存中对象,指针本身也是一个变量.但是指针不仅仅可以存储变量地址,还可以是其他例如函数指针. C语言程序运行时,内 ...
- [[: not found,Ubuntu修改默认sh为bash
写好的shell sh执行脚本报错[[: not found,改shell多麻烦,索性直接把电脑默认的dash改成使用bash 1.查看目前使用 Ubuntu版本默认sh都是使用的dash 执行 ls ...
- Erlang语言基础总结
1.=操作符(模式匹配) 当看到一个表达式像X = 123时,它的意思看似“将整数123赋予变量X”,但这种解读是不 正确的.=不是一个赋值操作符,它实际上是一个模式匹配操作符.与其他函数式编程语言一 ...
- C++ 静态库与动态库以及在 Windows上 的创建、使用
一.什么是库 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常. 本质上来说库是一种可执行代码的二进制形式,可以 ...