写点什么

Nginx 处理 HTTP 请求需要经过哪 11 个阶段? | 极客时间

  • 2019-05-15
  • 本文字数:1013 字

    阅读完需:约 3 分钟

Nginx 处理 HTTP 请求需要经过哪 11 个阶段? | 极客时间

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 核心知识图谱


内容选自极客时间Nginx核心知识100讲专栏


2019-05-15 15:057332

评论

发布
暂无评论
发现更多内容

ARTS - Week Two

shepherd

js algorithm

你不知道的SSD那些事

焱融科技

分布式 存储 SSD nvme

从 0 到 1 搭建技术中台之发布系统实践:集泳道、灰度、四端和多区域于一体的设计与权衡

伴鱼技术团队

架构 系统设计 系统架构 系统性思考 架构设计

我常用的浏览器插件

彭宏豪95

chrome 效率工具 浏览器 插件

# LeetCode 215. Kth Largest Element in an Array

liu_liu

算法 LeetCode

情绪的力量:如何使用情绪来达成目标

董一凡

情绪

Redis持久化了解一波!

不才陈某

redis 程序员 后端

我为什么开始技术写作?

架构精进之路

技术创作

线程池续:你必须要知道的线程池submit()实现原理之FutureTask!

一枝花算不算浪漫

源码分析 并发编程

Vue生态篇(一)

shirley

Java Vue

Vue生态篇(二)

shirley

Vue

Python 自动化办公之"你还在手动操作“文件”或“文件夹”吗?"

JackTian

Python 自动化

这是一个测试文档

Geek_073cad

奈学:传授“带权重的负载均衡实现算法”独家设计思路

奈学教育

分布式

Go语言分布式系统配置治理

田晓亮

微服务

ARTS 第二周打卡

陈文昕

互联网时代的界限管理

非著名程序员

程序员 职场 提升认知 界限管理

美团可能会强势涉足 ToB

罗小布

创业 互联网巨头 深度思考 互联网

每个人都是领导者的工程团队

hongfei

工程能力 项目实践

【Java 25周年有奖征文获奖名单公布!!!】关于Java,你最想赞扬、吐槽、期待的变化是什么?

InfoQ写作社区官方

写作平台 Java25周年 热门活动

一个人,沿着童年的路究竟可以走多远?

zhoo299

童年 NASA 航天

程序员修炼的务实哲学

博文视点Broadview

程序员 软件 编程思维 工程师 编程之路

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (十三)编写测试-生命周期方法

编程道与术

Java 编程 TDD 单元测试 JUnit

数据产品经理实战-数据门户搭建(上)

第519区

数据中台 开发数据

patroni 通过服务启动报错

hobson

数据库 高可用 AntDB

MySQL的各种日志

超超不会飞

MySQL

杂谈-JSONP探索

卡尔

Java jsonp

知识也会生宝宝?

史方远

个人成长 随笔杂谈

# LeetCode 863. All Nodes Distance K in Binary Tree

liu_liu

算法 LeetCode

开源分布式文件系统大检阅

焱融科技

开源 sds 存储 焱融科技 文件存储

我的 Windows 利器

玄兴梦影

工具 Win

Nginx 处理 HTTP 请求需要经过哪 11 个阶段? | 极客时间_大前端_陶辉_InfoQ精选文章