nginx处理的11个阶段

nginx处理用户请求的流程

接收用户请求头部之后

1 .匹配对应得location

2.是否进行限速

3.验证用户是否有权限访问该资源;和判断是否是盗链的请求

4.生成用户的响应报文

5.为了生成用户响应报文,可能作为代理服务需要向后端主机发送请求

6.给用户返回请求时要经过过滤模块,进行一些过滤处理如压缩等

7.在发送给用户响应时也会记录一条访问日志

nginx的处理用户请求的11 个阶段

1.个阶段POST_READ:这个阶段由realip这个模块处理;获取一些请求的原始值

2个阶段SERVER_REWRITE:这个阶段由rewrite这个模块处理

3个阶段FIND_CONFIG : 这个阶段由nginx的框架处理;做location的匹配

4个阶段REWRITE: 这个阶段由rewrite这个模块处理

5POST_REWRITE:

6PREACCESS:这个阶段由limt_conn与limit_req模块处理:在判断连接和处理请求的限制,如连接并发数量已经达到最高值limt_conn,或处理的请求数量已经达到limit_req

7.ACCESS:阶段是由auth_basic,access,auth_request;解决能不能访问资源的如用户名密码auth_basic是这个模块处理的,用户的IP是否可以访问时access模块处理的,auth_request 调第三方服务判断用户是否可以访问

8.POST_ACCEPT

9.PRECONTENT:这个阶段是由try_files模块处理

10.CONTENT :这个阶段是由index,autoindex,concat 模块处理;反向代理阶段等等

11. LOG:access_log记录日志

11个阶段处理顺

nginx 的请求处理阶段的更多相关文章

  1. nginx的请求处理

      nginx的请求处理¶ nginx使用一个多进程模型来对外提供服务,其中一个master进程,多个worker进程.master进程负责管理nginx本身和其他worker进程. 所有实际上的业务 ...

  2. nginx系列5:nginx的请求处理流程

    nginx的请求处理流程 如下图: nginx可以处理来自web(http),Email,TCP/UDP的三类请求. nginx底层使用非阻塞的事件驱动引擎,结合状态机来完成异步通知,其中处理Http ...

  3. Nginx 的请求处理流程,你了解吗?

    之前我们已经讲解了 Nginx 的基础内容,接下来我们开始介绍 Nginx 的架构基础. 为什么我们要讨论 Nginx 的架构基础? 因为 Nginx 运行在企业内网的最外层也就是边缘节点,那么他处理 ...

  4. PHP+FastCGI+Nginx动态请求处理配置

    Nginx不支持对外部程序的调用,所以必须通过FastCGI接口实现对外部程序的调用从而实现对client动态页面请求的处理. CGI的英文全称为Common Gateway Interface(公共 ...

  5. nginx 的 content阶段的root指令与alias指令

    root 与alias指令 Syntax: alias path; Default: — Context: location Syntax: root path; Default: root html ...

  6. nginx的preaccess 阶段的limit_req模块与limit_conn模块

    limit_conn 模块限制并发连接数 [root@python vhast]# vim limit_conn.conf limit_conn_zone $binary_remote_addr zo ...

  7. nginx 的precontent阶段的ngx_http_try_files_module模块与mirrors模块介绍

    指令介绍 Syntax: try_files file ... uri; try_files file ... =code; Default: — Context: server, location ...

  8. Nginx开发从入门到精通 学习目录分享学习 (阿里著作)

    Nginx开发从入门到精通   缘起 nginx由于出色的性能,在世界范围内受到了越来越多人的关注,在淘宝内部它更是被广泛的使用,众多的开发以及运维同学都迫切的想要了解nginx模块的开发以及它的内部 ...

  9. Nginx 配置指令的执行顺序(一)

    大多数 Nginx 新手都会频繁遇到这样一个困惑,那就是当同一个 location 配置块使用了多个 Nginx 模块的配置指令时,这些指令的执行顺序很可能会跟它们的书写顺序大相径庭.于是许多人选择了 ...

随机推荐

  1. 3.CRUD(增删改查)

    Select 选择,查询语句 id:就是对应的namespace中的方法名: resultType:Sql语句执行的返回值: parameterType:参数类型 我们想使用查询语句首先要在UserM ...

  2. composer 配置 切换中国镜像

    composer 默认地址改为中国镜像地址,以及中国镜像地址还原成默认地址 一.查看当前镜像地址 在命令行输入如下命令,即可查看全局镜像地址: $ composer config -g repo.pa ...

  3. winform BackgroundWorker 的用法 - 异步执行

    1.设置 backgroundWorker1.WorkerReportsProgress = true; backgroundWorker1.WorkerSupportsCancellation = ...

  4. Django 报错no sucn column: OpretionalError

    1.报错原因:新增的字段未能同步数据库 2.解决办法:删除整个数据库,然后重新编译,然后over 1.rm -rf db.sqlites3 #删除数据库 2.rm -rf cmdb/migrarion ...

  5. Go 语言 fmt.Sprintf (格式化输出)

    Printf().Sprintf().Fprintf() 函数的区别用法是什么? 都是输出格式化字符串,只是输出到的目标不一样: Printf() 是把格式化字符串输出到标准到标准输出(一般是屏幕,可 ...

  6. 你所了解的Java线程池

    在jvm中,线程是一个宝贵的资源,创建与销毁都会抢占宝贵的内存资源,为了有效的重用线程,我们用线程池来管理线程,让创建的线程进行复用. JDK提供了一套Executor框架,帮助我们管理线程,核心成员 ...

  7. js递归生成树形下拉菜单

    需求:我需要把一个单表的数据转换成类似菜单那种如图所示:我呢需要把这个菜单树放入到下框里面去如图所示: 下面是实现思路:1.第一步1.1var afTypeJson=${afTypeJson}// 这 ...

  8. ZooKeeper下载安装配置-单机版配置

    1,下载地址:http://apache.fayea.com/zookeeper/ 2,检查环境变量(需要确保配置了环境变量): java -version 3,安装配置: (1)解压 tar -zx ...

  9. RTT学习之启动流程

    总结RT-Thread的启动流程. 非运行时与运行时的image文件分别是什么样的,请画下来.是谁将 RW 段中的  RW-data(初始化的全局变量)搬运到 RAM 中? MDK环境下各种数据段存储 ...

  10. 【译】高级T-SQL进阶系列 (七)【上篇】:使用排序函数对数据进行排序

    [译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文链接:传送门. 什么是排序函数(Ranking Functions)? 排序函数基于一组记录的集合返回一个排序值.一个排序值其实 ...