Nginx 处理 HTTP 请求需要经过哪 11 个阶段?

2019 年 1 月 13 日 InfoQ

Nginx 为什么要把 HTTP 请求的处理过程分为多个阶段呢?

Nginx 的模块化设计使得每一个 HTTP 模块可以仅专注于完成一个独立的、简单的功能,而一个请求的完整处理过程可以使由无数个 HTTP 模块共同合作完成。这种设计有非常好的简单性、可测试性、可扩展性,然而,当多个 HTTP 模块流水式地处理同一个请求时,单一的处理顺序是无法满足灵活性需求的,每一个正在处理请求的 HTTP 模块很难灵活、有效地指定下一个 HTTP 处理模块是哪一个。而且,不划分处理阶段也会让 HTTP 请求的完整处理流程难以管理,每一个 HTTP 模块也很难正确地将自己插入到完整流程的合适位置中。

因此,HTTP 框架依据常见的处理流程将处理阶段划分为 11 个阶段,其中每个处理阶段都可以由任意多个 HTTP 模块流水式地处理请求。

那么,我们来看一看“Nginx 处理 HTTP 请求需要经过哪 11 个阶段?”


此节课程的用户评价


课程介绍

Nginx 很火,因为它就像一个万能药,在任何存在性能需求的场合总能找见它的身影。它可以轻松在百万并发连接下实现高吞吐量的 Web 服务,同时诸多应用场景下的问题都可以通过种种 Nginx 模块得以解决。

技术人员掌握 Nginx,便掌握了应对高并发以及海量数据处理的利器。而且,在学习 Nginx 的过程中,还能学习到许多优秀的设计思想,进一步提升我们的编码能力和架构设计能力,从而大大拓展我们的职业道路。

陶辉在极客时间开设的这门课程《Nginx 核心知识 100 讲》,备受好评。由于他有着多年 Nginx 的定制化应用经验,对 Nginx 的设计与特性有深刻认识,还是《深入理解 Nginx:模块开发与架构解析》一书的作者,跟着他学 Nginx,必定让你少走弯路。

他可以帮你把关于 Nginx 的零零散散的知识点串成一条线,再将网络、操作系统、磁盘等知识与 Nginx 相关知识组成一个知识网,从而在工作中灵活运用这些知识和技能,通过 Nginx 最大化地利用好服务器的性能,搭建出更稳定的服务。

你将获得

1、基础知识详解及核心架构剖析

2、搭建支持百万高并发的 Nginx 服务

3、从内核优化到源码解读的全方位拆解

4、OpenResty + Nginx 开发实战

总而言之,要成为 Nginx 高手,你必须彻底明确 Nginx 的能力模型,了解 Nginx 的工作原理,清楚怎样使用 Nginx 搭建出定制化的 Web 服务器或者微服务集群的负载均衡服务,并理解什么样的 API 服务适合用 Nginx 编写,同时清楚如何在 linux 操作系统上优化 Nginx,使 Nginx 可以轻松应付百万并发连接。

Nginx 核心知识图谱


点击“阅读原文”,也可订阅 / 试看此课程


登录查看更多
1

相关内容

Nginx(发音同 engine x)是一款由俄罗斯程序员 Igor Sysoev 所开发轻量级的网页服务器、反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。Nginx相较于 Apache、lighttpd 具有占有内存少,稳定性高等优势,并且依靠并发能力强,丰富的模块库以及友好灵活的配置而闻名。
【干货书】现代数据平台架构,636页pdf
专知会员服务
253+阅读 · 2020年6月15日
【IJCAI2020-华为诺亚】面向深度强化学习的策略迁移框架
专知会员服务
27+阅读 · 2020年5月25日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【论文扩展】欧洲语言网格:概述
专知会员服务
6+阅读 · 2020年3月31日
【综述】自动驾驶领域中的强化学习,附18页论文下载
专知会员服务
172+阅读 · 2020年2月8日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
滴滴离线索引快速构建FastIndex架构实践
InfoQ
21+阅读 · 2020年3月19日
工行基于MySQL构建分布式架构的转型之路
炼数成金订阅号
15+阅读 · 2019年5月16日
浅谈 Kubernetes 在生产环境中的架构
DevOps时代
11+阅读 · 2019年5月8日
亿级订单数据的访问与存储,怎么实现与优化?
码农翻身
16+阅读 · 2019年4月17日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
R工程化—Rest API 之plumber包
R语言中文社区
11+阅读 · 2018年12月25日
手把手 | 关于商业部署机器学习,这有一篇详尽指南
Arxiv
7+阅读 · 2018年12月5日
Learning Blind Video Temporal Consistency
Arxiv
3+阅读 · 2018年8月1日
Recurrent Fusion Network for Image Captioning
Arxiv
3+阅读 · 2018年7月31日
Arxiv
4+阅读 · 2018年4月17日
Arxiv
3+阅读 · 2017年8月15日
VIP会员
相关资讯
滴滴离线索引快速构建FastIndex架构实践
InfoQ
21+阅读 · 2020年3月19日
工行基于MySQL构建分布式架构的转型之路
炼数成金订阅号
15+阅读 · 2019年5月16日
浅谈 Kubernetes 在生产环境中的架构
DevOps时代
11+阅读 · 2019年5月8日
亿级订单数据的访问与存储,怎么实现与优化?
码农翻身
16+阅读 · 2019年4月17日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
R工程化—Rest API 之plumber包
R语言中文社区
11+阅读 · 2018年12月25日
手把手 | 关于商业部署机器学习,这有一篇详尽指南
Top
微信扫码咨询专知VIP会员