作者简介
聂松松
好未来学而思网校学习研发直播系统后端负责人,负责网校核心直播系统开发和架构工作,拥有多年音视频及流媒体相关工作经验,精通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等公司从事研发和技术管理工作,在高性能服务架构设计及复杂业务系统开发方面拥有丰富的经验。
目录
推荐序<br/>前 言<br/>第1章 Nginx源码与编译安装 1<br/>1.1 Nginx优势与4种应用示例 1<br/>1.2 Nginx源码结构 4<br/>1.3 Nginx编译安装 5<br/>1.4 本章小结 6<br/>第2章 Nginx基础架构与设计理念 7<br/>2.1 Nginx进程模型 7<br/>2.2 Nginx模块化设计 9<br/>2.2.1 模块分类 9<br/>2.2.2 模块接口 10<br/>2.2.3 模块分工 12<br/>2.3 Nginx事件驱动 13<br/>2.4 本章小结 14<br/>第3章 Nginx内存管理 15<br/>3.1 Nginx内存管理简介 15<br/>3.2 Nginx内存池 16<br/>3.2.1 内存池结构 16<br/>3.2.2 申请内存 17<br/>3.2.3 释放内存 20<br/>3.3 Nginx共享内存 22<br/>3.3.1 共享内存的创建及销毁 22<br/>3.3.2 互斥锁 23<br/>3.3.3 共享内存管理 25<br/>3.3.4 共享内存使用 30<br/>3.4 本章小结 31<br/>第4章 基本数据结构 32<br/>4.1 字符串 32<br/>4.2 数组 33<br/>4.3 链表 35<br/>4.4 队列 37<br/>4.5 散列 42<br/>4.6 红黑树 46<br/>4.7 基数树 56<br/>4.8 本章小结 59<br/>第5章 配置文件解析 60<br/>5.1 配置文件简介 60<br/>5.2 主函数ngx_conf_parse 63<br/>5.3 解析main配置 65<br/>5.3.1 创建main配置上下文 65<br/>5.3.2 解析配置指令 66<br/>5.4 解析events配置块 69<br/>5.5 解析http配置块 71<br/>5.5.1 main配置解析 71<br/>5.5.2 server配置解析 74<br/>5.5.3 location配置解析 76<br/>5.5.4 配置合并 79<br/>5.5.5 location配置再处理 81<br/>5.5.6 upstream配置解析 83<br/>5.6 本章小结 85<br/>第6章 Nginx进程机制 86<br/>6.1 Nginx进程模式 86<br/>6.1.1 daemon模式 86<br/>6.1.2 单进程模式和多进程模式 88<br/>6.1.3 进程模式源码解析 88<br/>6.2 Master进程 91<br/>6.3 Worker进程 93<br/>6.4 进程间通信机制 99<br/>6.4.1 信号定义 99<br/>6.4.2 信号注册 101<br/>6.4.3 信号处理 102<br/>6.4.4 Master进程处理机制 106<br/>6.4.5 Worker进程处理机制 110<br/>6.4.6 Master进程与Worker进程通信 111<br/>6.5 本章小结 115<br/>第7章 HTTP模块 116<br/>7.1 整体流程 117<br/>7.1.1 HTTP模块初始化 117<br/>7.1.2 HTTP请求解析 118<br/>7.1.3 HTTP请求处理与响应 120<br/>7.2 HTTP服务初始化 123<br/>7.2.1 模块初始化 123<br/>7.2.2 事件初始化 126<br/>7.2.3 HTTP会话建立 128<br/>7.3 HTTP请求解析 130<br/>7.3.1 基础结构体 131<br/>7.3.2 接收请求流程 135<br/>7.3.3 解析请求行 137<br/>7.3.4 解析请求头 143<br/>7.4 HTTP请求处理 148<br/>7.4.1 多阶段划分 148<br/>7.4.2 11个阶段初始化 153<br/>7.4.3 处理HTTP请求 155<br/>7.4.4 处理请求体 169<br/>7.5 HTTP请求响应 177<br/>7.5.1 过滤模块 177<br/>7.5.2 发送HTTP响应 182<br/>7.5.3 结束HTTP响应 190<br/>7.6 本章小结 197<br/>第8章 Upstream机制 198<br/>8.1 Upstream简介 198<br/>8.2 初始化Upstream 200<br/>8.3 与上游建立连接 205<br/>8.4 发送请求到上游 208<br/>8.5 处理上游响应头 210<br/>8.6 处理上游响应体 213<br/>8.7 结束请求 217<br/>8.8 重试机制 219<br/>8.9 长连接 220<br/>8.10 FastCGI模块 225<br/>8.10.1 FastCGI协议简介 225<br/>8.10.2 FastCGI通信流程 226<br/>8.10.3 Nginx FastCGI 227<br/>8.11 本章小结 228<br/>第9章 Event模块实现 229<br/>9.1 基础知识及相关配置项介绍 230<br/>9.1.1 基本概念 230<br/>9.1.2 基本网络模型 230<br/>9.1.3 epoll网络模型 231<br/>9.1.4 Event模块相关配置项介绍 234<br/>9.2 Nginx事件模型 234<br/>9.2.1 文件事件 235<br/>9.2.2 时间事件 235<br/>9.2.3 进程池 237<br/>9.2.4 监听池 237<br/>9.2.5 连接池 238<br/>9.2.6 事件池 240<br/>9.2.7 Event模块初始化过程 244<br/>9.2.8 请求处理流程 257<br/>9.3 Nginx的惊群处理 262<br/>9.4 Nginx的陈旧事件处理 264<br/>9.5 本章小结 266<br/>第10章 其他模块 267<br/>10.1 负载均衡模块 267<br/>10.1.1 Nginx负载均衡算法简介 267<br/>10.1.2 Nginx负载均衡配置指令 268<br/>10.1.3 Nginx负载均衡算法实现 270<br/>10.2 限流模块 276<br/>10.2.1 常见限流算法 276<br/>10.2.2 Nginx限流配置 277<br/>10.2.3 限流实现原理 278<br/>10.3 日志模块 287<br/>10.3.1 日志模块配置指令 288<br/>10.3.2 日志模块实现原理 290<br/>10.4 本章小结 295<br/>第11章 跨平台实现 296<br/>11.1 configure实现详解 296<br/>11.2 跨平台的原子操作和锁 304<br/>11.3 信号量 311<br/>11.4 信号和进程管理 315<br/>11.5 共享内存 322<br/>11.6 本章小结 325<br/>第12章 基于Nginx的RTMP直播服务实现 326<br/>12.1 Nginx-RTMP简介 326<br/>12.2 握手 328<br/>12.3 分块 331<br/>12.4 Nginx-RTMP模块 335<br/>12.5 中继模块 342<br/>12.6 本章小结 347
内容摘要
本书内容上分为三篇,共计13章内容。<br>第1篇(第1~5章)基础知识篇,第1章主要讲解了Nginx源码目录介绍的作用及编译与安装,第2章讲解了Nginx的整体架构与设计思路的实现,第3~5章主要讲解了Nginx的基本数据结构、内存管理与配置文件解析等实现。<br>第2篇(第6~11章)核心模块篇,这一篇为本书的核心内容,其中第6章讲解了Nginx生命周期的实现,第7章讲解了Event模块及其用到的事件模型实现,第8章讲解了HTTP模块及11阶段的实现,第9章讲解了Upstream模块实现,第10章讲解了FastCGI与proxy模块实现,第11章讲解了负载均衡、限流、SSL、log等模块实现。<br>第3篇(第12~13章)实战应用篇,讲解了Nginx的rtmp模块实现,让读者对跨平台原理实现、多进程管理、信号、信号量、共享内存、事件等知识点有一个更深入的理解。<br>
以下为对购买帮助不大的评价