Nginx的请求处理

本文分享自天翼云开发者社区《Nginx的请求处理》.作者:小谢不用谢

Nginx的请求处理流程

    worker进程中,ngx_worker_process_cycle()函数就是这个无限循环的处理函数。在这个函数中,一个请求的简单处理流程如下:

 (1)操作系统提供的机制(例如epoll, kqueue等)产生相关的事件。

 (2)接收和处理这些事件,如是接受到数据,则产生更高层的request对象。

 (3)处理request的header和body。

 (4)产生响应,并发送回客户端。

 (5)完成request的处理。

 (6)重新初始化定时器及其他事件。

为了让大家更好的了解nginx中请求处理过程,我们以HTTP Request为例,来做一下详细地说明。

从nginx的内部来看,一个HTTP Request的处理过程涉及到以下几个阶段。

 (1)初始化HTTP Request(读取来自客户端的数据,生成HTTP Request对象,该对象含有该请求所有的信息)。

 (2)处理请求头。

 (3)处理请求体。

 (4)如果有的话,调用与此请求(URL或者Location)关联的handler。

 (5)依次调用各phase handler进行处理。

在这里,我们需要了解一下phase handler这个概念。phase字面的意思,就是阶段。所以phase handlers也就好理解了,就是包含若干个处理阶段的一些handler。

    在每一个阶段,包含有若干个handler,再处理到某个阶段的时候,依次调用该阶段的handler对HTTP Request进行处理。通常情况下,一个phase handler对这个request进行处理,并产生一些输出。通常phase handler是与定义在配置文件中的某个location相关联的。

一个phase handler通常执行以下几项任务:

 (1)获取location配置。

 (2)产生适当的响应。

 (3)发送response header。

 (4)发送response body。

当nginx读取到一个HTTP Request的header的时候,nginx首先查找与这个请求关联的虚拟主机的配置。如果找到了这个虚拟主机的配置,那么通常情况下,这个HTTP Request将会经过以下几个阶段的处理(phase handlers):

NGX_HTTP_POST_READ_PHASE:  读取请求内容阶段

NGX_HTTP_SERVER_REWRITE_PHASE:  Server请求地址重写阶段

NGX_HTTP_FIND_CONFIG_PHASE:  配置查找阶段:

NGX_HTTP_REWRITE_PHASE:  Location请求地址重写阶段

NGX_HTTP_POST_REWRITE_PHASE:  请求地址重写提交阶段

NGX_HTTP_PREACCESS_PHASE:  访问权限检查准备阶段

NGX_HTTP_ACCESS_PHASE:  访问权限检查阶段

NGX_HTTP_POST_ACCESS_PHASE:  访问权限检查提交阶段

NGX_HTTP_TRY_FILES_PHASE:  配置项try_files处理阶段

NGX_HTTP_CONTENT_PHASE:  内容产生阶段

NGX_HTTP_LOG_PHASE:   日志模块处理阶段

在内容产生阶段,为了给一个request产生正确的响应,nginx必须把这个request交给一个合适的content handler去处理。如果这个request对应的location在配置文件中被明确指定了一个content handler,那么nginx就可以通过对location的匹配,直接找到这个对应的handler,并把这个request交给这个content handler去处理。这样的配置指令包括像,perl,flv,proxy_pass,mp4等。

如果一个request对应的location并没有直接有配置的content handler,那么nginx依次尝试:

 (1)如果一个location里面有配置 random_index on,那么随机选择一个文件,发送给客户端。

 (2)如果一个location里面有配置 index指令,那么发送index指令指明的文件,给客户端。

 (3)如果一个location里面有配置 autoindex on,那么就发送请求地址对应的服务端路径下的文件列表给客户端。

 (4)如果这个request对应的location上有设置gzip_static on,那么就查找是否有对应的.gz文件存在,有的话,就发送这个给客户端(客户端支持gzip的情况下)。

 (5)请求的URI如果对应一个静态文件,static module就发送静态文件的内容到客户端。

内容产生阶段完成以后,生成的输出会被传递到filter模块去进行处理。filter模块也是与location相关的。所有的fiter模块都被组织成一条链。输出会依次穿越所有的filter,直到有一个filter模块的返回值表明已经处理完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/951998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年液相色谱仪口碑推荐优质厂家,国产仪器品牌哪家强?

在当今科技飞速发展的时代,液相色谱仪作为分析检测领域的重要工具,其质量和性能对于科研、制药、环境监测等众多行业至关重要。2025年,市场上液相色谱仪品牌众多,而国产仪器品牌也在不断崛起,其中北京普析通用仪器…

【MySQL】数据库基础 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

云湖+小马算力:无需懂技术,轻松知识库AI智能机器人

注册小马算力:https://www.tokenpony.cn/3N6Rdu3e 注册完毕进入后台开通API keys在云湖APP中,创建机器人点击【机器人设置】开启大模型机器人选项,模型类型选择其他模型可以访问:https://www.tokenpony.cn/#/model…

2025年深圳geo优化服务公司权威推荐榜单:geo优化公司/geo优化推广/ai排名优化源头公司精选

在当前AI技术快速发展的背景下,生成式引擎优化(GEO)已成为企业获取AI搜索流量的核心手段。据行业数据显示,2025年全球AI搜索用户规模已突破8亿,超过60%的搜索请求会触发AI摘要回答,未能被AI采纳内容的品牌将面临…

2025年架空电缆源头厂家权威推荐榜单:屏蔽电缆/防火电缆/矿物质电缆源头厂家精选

随着全球电力网络升级与新能源并网需求激增,2025年架空电缆市场正迎来技术升级与产能扩张的双重浪潮。高质量架空电缆已成为保障电网安全、提升输电效率的核心要素。 架空电缆作为电力传输的"空中动脉",其…

hello-gui

hello-guiimport("stdfaust.lib"); ctFreq = hslider("[0]cutoffFrequency",500,50,10000,0.01) hslider 的第一个参数是参数的名称,因为它将在界面中显示或在API中使用(它可以不同于与UI元素关…

异常的处理

新版本的C#支持nullable功能,如果一个可空的对象,没有进行空值判断的话,IDE会有报警提示。 借助下面的一些特性标识,能够进行null值的判断。 对函数内引用的属性进行异常判断 通过ArgumentNullException.ThrowIfNu…

银河麒麟服务器操作系统 V10 (Lance) 安装docker 28

银河麒麟服务器操作系统 V10 (Lance) 安装docker 28银河麒麟服务器操作系统 V10 (Lance) 安装docker 28 编辑 复制银河麒麟服务器操作系统 V10 Docker安装 在银河麒麟服务器操作系统 V10 (Lance) 上安装 Docker 28.0.1…

Python创建类(下)_ 当上帝的时刻到了

Python创建类(下)_ 当上帝的时刻到了class Student: def __init__(self, name, student_id): self.name = name self.student_id = student_id self.grades = {"语文": 0, "…

超纯水售后哪家好?国产仪器权威推荐品牌top2

在科学研究和工业生产中,超纯水作为关键的基础资源,其质量和供应稳定性至关重要。选择一家售后服务优质的超纯水设备供应商,不仅能确保设备的长期稳定运行,还能为科研和生产提供有力保障。本文将基于国产仪器领域的…

PADS丨极坐标设置

在需要布局的位置设置原点。使用无模命令“GP”打开极坐标栅格。打开 设置 -> 栅格 -> 径向移动设置 -> 设置半径和环的数量。选中元器件 -> 右键选择“径向移动”,即可按极坐标布局。元器件换方向 ->…

题解:P11630 [WC2025] 士兵

更差的阅读体验考虑一个很菜的 dp。假设 \(f_{i, j}\) 表示前 \(i\) 个人,对着 \(i\) 砍了 \(j\) 刀的方案数。那么很显然有转移: \[f_{i, j} = \max_{k} \{f_{i-1, k} - m \times \max(0, j-k)\} + [j \ge a_i] \ti…

2025 年 SMT 加工优质厂家最新推荐榜,技术实力与市场口碑深度解析的权威甄选结果

引言 2025 年 SMT 加工行业竞争愈发激烈,为助力企业精准选择合作厂家,电子制造协会联合国内权威测评机构开展专项测评。本次测评历时 3 个月,覆盖珠三角、长三角等核心电子制造产业带超 200 家 SMT 加工企业,采用 …

Oracle 19c数据库迁移到IvorySQL 4.6实战

1. 背景 在国家数字化转型与信创产业加速推进的背景下,数据库作为信息系统的核心基础设施,其国产化替代已成为企业数字化建设的重要战略方向。Oracle 数据库凭借成熟的技术体系长期占据市场主导地位,但在自主可控、…

2025 年 10 月北京清洗公司最新推荐,聚焦资质、案例、售后的五家机构深度解读

引言 2025 年 10 月,北京清洗行业迎来新一轮服务能力评估,本次评估由北京环境卫生协会联合行业技术专家团队开展,采用 “资质审核 + 技术测试 + 客户回访 + 售后追踪” 四维测评方法。测评覆盖全市 58 家主流清洗企…

2025年仪器计量制造企业权威推荐榜单:计量检测服务/仪器类检测/计量检测源头厂家精选

在工业4.0和智能制造浪潮的推动下,2025年中国仪器计量市场规模已突破千亿元,年均增速保持在12% 以上。精密测量与计量校准作为工业质量的基础保障,正成为支撑制造业升级的关键环节。 为帮助各类企业精准筛选合格供应…

紫外分光光度计哪家好?TOP1品牌权威推荐,选购建议看这里!

在当今的科学研究和工业生产中,紫外分光光度计作为一种重要的分析仪器,广泛应用于教学研究、卫生防疫、环境监测、农林牧渔业、制造业、计量校准、行政机关、市政、科研机构、勘察水利等领域。选择一款性能卓越、质量…

2025年网络隔离变压器优质厂家权威推荐榜单:以太网变压器/数据泵/网络变压器源头厂家精选

在数字化转型加速的2025年,网络隔离变压器作为保障数据稳定传输的关键组件,其性能优劣直接关系到整个通信系统的可靠性。 据行业报告预测,到2031年,全球以太网磁性变压器市场销售额预计将达到71.4亿元,年复合增长…

2025 年提升门厂家最新推荐榜,技术实力与市场口碑深度解析,筛选优质品牌助力采购决策

引言 为精准筛选出 2025 年提升门领域优质品牌,门业协会联合工业设施运维联盟开展专项测评,本次测评覆盖全国 127 家提升门生产企业,从技术研发、生产能力、市场反馈、服务体系四大维度设置 28 项细分指标。测评中,…

2025 年杭州画室推荐:之江画室以央清班十年口碑、突出设计学录取案例与优质教学空间立足行业

行业背景 近年来,杭州凭借浓厚的艺术氛围与优质的美术教育资源,成为全国美术生备考的重要目的地,画室行业呈现出专业化、精细化发展趋势。随着艺术类院校对考生综合素养与专业能力要求的提升,考生及家长在选择画室…