nginx 工作流程
NGINX 把http请求处理流程划分为11个阶段,逻辑细分,以模块为单位进行处理。各个阶段可以包含多个http模块,每个阶段以流水线的形式处理请求。这样的分层处理模式与计算机网络的7层模式类似,每个模块以正交的方式处理请求,带来了低耦合,模块之间的低耦合带来灵活性。
1. NGX_HTTP_POST_READ
接受到完整HTTP头部后的处理阶段,位于URI重写之前;
2. NGX_HTTP_SERVER_REWRITE
URI与location匹配之前,修改URL的阶段,用于重定向,也就是该阶段执行处于server块内,location块外的重写指令。在读取请求头的过程中,NGNIX会根据host和端口找到对应的虚拟主机配置。
3, NGX_HTTP_FIND_CONFIG
根据URI寻找匹配的location块配置阶段,该阶段使用重写后之后的URI来查找对应的location,该阶段可能被执行多次,可能有location级别的重写指令。
4. NGX_HTTP_REWITR
上一阶段找到location块后,再修改URI,location级别的URI重写阶段,该阶段执行location基本重写指令,也可能会被执行多次。
5. NGX_HTTP_POST_REWRITE
为了防止重写URI后导致死循环,location级别重写的后一阶段,用来检查上阶段是否有URI重写,并根据结果跳转到合适的阶段。
6. NGX_HTTP_PERACCESS
访问权限控制的前一阶段,该阶段在访问权限控制之前,一般也用于访问控制,比如限制访问的频率、连接数等。
7. NGX_HTTP_ACCESS
访问权限控制阶段,让HTTP模块判断是否允许这个请求进入NGNIX服务器,比如基于黑名单的权限控制,基于用户密码的权限控制等。
8. NGX_HTTP_POST_ACCESS
访问权限控制的后一阶段,该阶段根据权限控制阶段的执行结果进行相应的处理,向用户发送拒绝服务的错误码,用来相应上一阶段的拒绝。
9. NGX_HTTP_TRY_FILES
为访问静态资源而设置,try_files指令的处理阶段,如果没有配置try_files指令,则该阶段被跳过。
10. NGX_HTTP_CONTENT
处理HTTP请求内容的阶段,大部分HTTP模块进入这个阶段--相应内容生成阶段,该阶段产生相应,并发送到客户端。
11. NGX_HTTP_LOG
处理完请求后的日志记录阶段,该阶段记录访问日志。
nginx 工作流程的更多相关文章
- nginx的工作流程
nginx请求处理流程 nginx进程结构 master进程:是作为worker进程管理的 worker进程:处理真正的请求的而master进程则是管控这些进程的工作方式的:缓存是在多个worker进 ...
- Nginx的架构及工作流程
NGINX是一个免费的,开源的,高性能的HTTP服务器和反向代理,以及IMAP / POP3代理服务器.NGINX以其高性能,稳定性,丰富的功能集,简单的配置和低资源消耗而闻名,也是为解决C10K问题 ...
- 【夯实Nginx基础】Nginx工作原理和优化、漏洞
本文地址 原文地址 本文提纲: 1. Nginx的模块与工作原理 2. Nginx的进程模型 3 . NginxFastCGI运行原理 3.1 什么是 FastCGI ...
- Nginx工作原理和优化
转自:http://blog.csdn.net/hguisu/article/details/8930668 Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过 ...
- Nginx工作原理和优化、漏洞
1. Nginx的模块与工作原理 第三方模块:HTTP Upstream Request Hash模块.Notice模块和HTTP Access Key模块. 图1-1展示了Nginx模块常规的HT ...
- Nginx 工作原理和优化、漏洞
1. Nginx的模块与工作原理 Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(locat ...
- Nginx工作原理和优化、漏洞(转)
查看安装了哪些模块命令: [root@RG-PowerCache-X xcache]# nginx/sbin/nginx -Vnginx version: nginx/1.2.3built by gc ...
- Nginx系列一:正向代理和反向代理、Nginx工作原理、Nginx常用命令和升级、搭建Nginx负载均衡
转自https://www.cnblogs.com/leeSmall/p/9351343.html 仅供个人学习 一.什么是正向代理.什么是反向代理 1. 正向代理,意思是一个位于客户端和原始服务器( ...
- Nginx 工作原理
Nginx 工作原理 Nginx由内核和模块组成. Nginx本身做的工作实际很少,当它接到一个HTTP请求时,它仅仅是通过查找配置文件将此次请求映射到一个location block,而此locat ...
- linux下的工作模型以及Nginx工作原理
Web服务器主要任务就是处理来自客户端的请求,一般情况下Web服务器处理并发连接请求的工作模型有以下几种方式: 1.单线程web服务器(Single-threaded web servers) 此 ...
随机推荐
- [273] High Five Update 3 OpCodez
[273] High Five Update 3 Client 00 SendLogOut 01 RequestAttack 03 RequestStartPledgeWar 04 RequestRe ...
- 【Word】通配符和特殊字符
[Word]通配符和特殊字符 ^p 换行符 正则表达式 使用\转义,用于[]等 参考资料 Word通配符怎么用?使用Word通配符的方法
- fetch 小分析
includes\database\prefetch.inc line 385 public function fetchField($index = 0) { return $this->fe ...
- Intel oneAPI 环境变量设置
因工作需要,需要在linux系统配置多个不同环境的库,需要使用environment-modules工具管理环境变量,为保持配置方法的一致性,也使用modulefile文件加载Intel oneAPI ...
- c++ 引用 指针。
一.什么是引用(reference) ?已经存在的对象的另外一个名字. 引用有什么特别的? 1.引用在定义时,以&开头. 2.引用不是对象,只能绑定在对象上.所以必须在初始化的时候,指定引用绑 ...
- 【stm32】的PWM外设|学习笔记
PWM简单理解就是生成PWM方波,主要可控的参数有周期,占空比,极性. stm32内置PWM生成器,我想应该是用TIM加比较器来实现的吧,那么如何实现stm32输出PWM波呢? 一.得知道那些IO可以 ...
- 多线程事务回滚sqlSession, spring-mybatis 开启事务
@Resource SqlContext sqlContext; /** * 多线程事务. * @param employeeDOList */ @Override public void saveT ...
- 安装centos7 报错no controller found踩坑
安装centos7.9时出现如上报错,特记录解决方法: 1.查看硬盘 出现如上报错时,耐心等待,等错误提醒不断滚动时,一会出现命令行输入界面,输入命令: [root@localhost ~]# ls ...
- tomcat多主多备
主服务器默认轮询,当主服务器全部挂了,就会访问备机backup,备机也默认轮询
- java第六周学习情况
这个星期接到了要开学的消息,心情是非常慌张的,毕竟还没有学到多少东西.但确实是要开学了.心中说不出激动还是紧张,那就带着这种奇妙的情绪记录这次的学习吧 首先必然还是看了相关的程序,记没记下来是另外一说 ...