本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
商品基本信息,请以下列介绍为准 | |
商品名称: | Nginx底层设计与源码分析 |
作者: | 聂松松,赵禹,施洪宝 |
定价: | 99.0 |
出版社: | 机械工业出版社 |
出版日期: | 2021-06-01 |
ISBN: | 9787111682745 |
印次: | 1 |
版次: | 1版1次 |
装帧: | |
开本: | 16开 |
内容简介 | |
本书内容上分为三篇,共计13章内容。第1篇(第1~5章)基础知识篇,第1章主要讲解了Nginx源码目录介绍的作用及编译与安装,第2章讲解了Nginx的整体架构与设计思路的实现,第3~5章主要讲解了Nginx的基本数据结构、内存管理与配置文件解析等实现。第2篇(第6~11章)核心模块篇,这一篇为本书的核心内容,其中第6章讲解了Nginx生命周期的实现,第7章讲解了Event模块及其用到的事件模型实现,第8章讲解了HTTP模块及11阶段的实现,第9章讲解了Upstream模块实现,第10章讲解了FastCGI与proxy模块实现,第11章讲解了负载均衡、限流、SSL、log等模块实现。第3篇(第12~13章)实战应用篇,讲解了Nginx的rtmp模块实现,让读者对台原理实现、程管理、信号、信号量、共享内存、事件等知识点有一个更深入的理解。 |
目录 | |
推荐序 前 言 第1章 Nginx源码与编译安装 1 1.1 Nginx优势与4种应用示例 1 1.2 Nginx源码结构 4 1.3 Nginx编译安装 5 1.4 本章小结 6 第2章 Nginx基础架构与设计理念 7 2.1 Ngin程模型 7 2.2 Nginx模块化设计 9 2.2.1 模块分类 9 2.2.2 模块接口 10 2.2.3 模块分工 12 2.3 Nginx事件驱动 13 2.4 本章小结 14 第3章 Nginx内存管理 15 3.1 Nginx内存管理简介 15 3.2 Nginx内存池 16 3.2.1 内存池结构 16 3.2.2 申请内存 17 3.2.3 释放内存 20 3.3 Nginx共享内存 22 3.3.1 共享内存的创建及销毁 22 3.3.2 互斥锁 23 3.3.3 共享内存管理 25 3.3.4 共享内存使用 30 3.4 本章小结 31 第4章 基本数据结构 32 4.1 字符串 32 4.2 数组 33 4.3 链表 35 4.4 队列 37 4.5 散列 42 4.6 红黑树 46 4.7 基数树 56 4.8 本章小结 59 第5章 配置文件解析 60 5.1 配置文件简介 60 5.2 主函数ngx_conf_parse 63 5.3 解析main配置 65 5.3.1 创建main配置上下文 65 5.3.2 解析配置指令 66 5.4 解析events配置块 69 5.5 解析http配置块 71 5.5.1 main配置解析 71 5.5.2 server配置解析 74 5.5.3 location配置解析 76 5.5.4 配置合并 79 5.5.5 location配置再处理 81 5.5.6 upstream配置解析 83 5.6 本章小结 85 第6章 Ngin程机制 86 6.1 Ngin程模式 86 6.1.1 daemon模式 86 6.1.2 程模式和程模式 88 6.1.3程模式源码解析 88 6.2 Maste程 91 6.3 Worke程 93 6.4程间通信机制 99 6.4.1 信号定义 99 6.4.2 信号注册 101 6.4.3 信号处理 102 6.4.4 Maste程处理机制 106 6.4.5 Worke程处理机制 110 6.4.6 Maste程与Worke程通信 111 6.5 本章小结 115 第7章 HTTP模块 116 7.1 整体流程 117 7.1.1 HTTP模块初始化 117 7.1.2 HTTP请求解析 118 7.1.3 HTTP请求处理与响应 120 7.2 HTTP服务初始化 123 7.2.1 模块初始化 123 7.2.2 事件初始化 126 7.2.3 HTTP会话建立 128 7.3 HTTP请求解析 130 7.3.1 基础结构体 131 7.3.2 接收请求流程 135 7.3.3 解析请求行 137 7.3.4 解析请求头 143 7.4 HTTP请求处理 148 7.4.1 多阶段划分 148 7.4.2 11个阶段初始化 153 7.4.3 处理HTTP请求 155 7.4.4 处理请求体 169 7.5 HTTP请求响应 177 7.5.1 过滤模块 177 7.5.2 发送HTTP响应 182 7.5.3 结束HTTP响应 190 7.6 本章小结 197 第8章 Upstream机制 198 8.1 Upstream简介 198 8.2 初始化Upstream 200 8.3 与上游建立连接 205 8.4 发送请求到上游 208 8.5 处理上游响应头 210 8.6 处理上游响应体 213 8.7 结束请求 217 8.8 重试机制 219 8.9 长连接 220 8.10 FastCGI模块 225 8.10.1 FastCGI协议简介 225 8.10.2 FastCGI通信流程 226 8.10.3 Nginx FastCGI 227 8.11 本章小结 228 第9章 Event模块实现 229 9.1 基础知识及相关配置项介绍 230 9.1.1 基本概念 230 9.1.2 基本网络模型 230 9.1.3 epoll网络模型 231 9.1.4 Event模块相关配置项介绍 234 9.2 Nginx事件模型 234 9.2.1 文件事件 235 9.2.2 时间事件 235 9.2.3程池 237 9.2.4 监听池 237 9.2.5 连接池 238 9.2.6 事件池 240 9.2.7 Event模块初始化过程 244 9.2.8 请求处理流程 257 9.3 Nginx的惊群处理 262 9.4 Nginx的陈旧事件处理 264 9.5 本章小结 266 第10章 其他模块 267 10.1 负载均衡模块 267 10.1.1 Nginx负载均衡算法简介 267 10.1.2 Nginx负载均衡配置指令 268 10.1.3 Nginx负载均衡算法实现 270 10.2 限流模块 276 10.2.1 常见限流算法 276 10.2.2 Nginx限流配置 277 10.2.3 限流实现原理 278 10.3 日志模块 287 10.3.1 日志模块配置指令 288 10.3.2 日志模块实现原理 290 10.4 本章小结 295 第11章 台实现 296 11.1 configure实现详解 296 11.2 台的原子操作和锁 304 11.3 信号量 311 11.4 信号程管理 315 11.5 共享内存 322 11.6 本章小结 325 第12章 基于Nginx的RTMP直播服务实现 326 12.1 Nginx-RTMP简介 326 12.2 握手 328 12.3 分块 331 12.4 Nginx-RTMP模块 335 |
媒体评论 | |
好未来专家撰写,剖析Nginx源码设计精髓与应用 |
作者简介 | |
聂松松,好未来学而思网校学习研发直播系统后端负责人,负责网校核心直播系统开发和架构工作,拥有多年音视频及流媒体相关工作经验,精通Nginx、ffmpeg相关技术栈。 赵禹,好未来后端开发工程师,曾参与自主创业。目前负责云容台Kubernetes组件开发,熟悉PHP、Nginx、Redis、MySQL等源码实现,乐于钻研技术。 施洪宝,好未来后端开发专家,对Redis、Nginx、MySQL等开源软件有较深的理解,熟悉C/C++、Go语言开发,乐于钻研技术,合著有《Redis 5设计与源码分析》。 景罗,高级技术专家,曾在搜狐、新浪工作,拥有7年后端架构开发经验,熟悉PHP、Nginx、Redis、MySQL等源码实现,擅长高并发处理及大型网站架构开发。 黄桃,高级技术专家,曾在滴滴等公司工作,拥有8年后端架构开发经验,著有《PHP 7底层设计与源码实现》等书籍。 李乐,好未来学而思网校PHP开发专家,乐于钻研技术与源码研究,对Redis和Nginx有较深的理解,合著有《Redis 5设计与源码分析》。 张报,好未来集团接入层网关方向负责人,对Nginx、Tengine、OpenResty等高能Web服务器有深入理解,精通大型站点架构与流量调度系统的设计与实现。 闫昌,好未来后端开发专家,深耕信息安全领域多年,对Linux服务端开发有较深见解,擅长高并发业务的实现。 田峰,学而思学服研发部负责人,从业10余年,曾在搜狗、百度、360等公司从事研发和技术管理工作,在高能服务架构设计及复杂业务系统开发方面拥有丰富的经验。 |