搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
Nginx底层设计与源码分析
0.00     定价 ¥ 99.00
图书来源: 浙江图书馆(由JD配书)
此书还可采购13本,持证读者免费借回家
  • 配送范围:
    浙江省内
  • ISBN:
    9787111682745
  • 作      者:
    聂松松,赵禹,施洪宝,等
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2021-07-01
收藏
编辑推荐

(1)理解源码:涵盖内存、配置、进程、网络、事件、负载、日志等模块。

(2)直播模块开发:Nginx的RTMP直播服务实现,经过百万在线验证实践。

(3) 跨平台实现:涵盖编译过程、共享内存等。

(4)直击本质:多角度分析Nginx底层原理和设计,揭示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等公司从事研发和技术管理工作,在高性能服务架构设计及复杂业务系统开发方面拥有丰富的经验。

展开
内容介绍

本书详解了Nginx架构、执行流程、模块实现与数据结构,剖析了Nginx源码设计精髓与应用。


第1~2章介绍Nginx编译安装、基础架构与设计理念,涵盖源码结构、J程模型等,让读者对Nginx有整体性了解。

第3章从内存池、共享内存展开介绍Nginx的内存管理与使用。

第4章分析Nginx的数据结构,即字符串、数组、链表、队列、散列、红黑树、基数树的数据结构和算法。

第5章详细介绍main配置块、events配置块与http配置块,呈现Nginx配置解析的全过程。

第6章完整地介绍了Nginx的 J程管理,涵盖 J程模式、master J程、worker J程以及 J程间通信机制。

第7章详细分析HTTP模块及其处理的11个阶段,如模块初始化流程、请求解析、请求响应等。

第8章介绍了Upstream机制,涵盖初始化、上下游连接建立、长连接等,着重介绍了FastCGI通信流程。

第9章详细介绍Event模块的实现以及Nginx中的惊群处理。

第10章介绍Nginx的负载均衡、限流、日志等模块实现。

第11章介绍跨平台实现,涵盖编译过程、共享内存等。

第12章介绍Nginx的RTMP直播服务实现,着重介绍RTMP包协议与中继模块实现。

展开
精彩书评

★韩天峰,好未来学而思网校首席架构师
不同于市面上常见的Nginx应用书籍,本书从Nginx底层的多进程模型、异步非阻塞I/O、数据结构与内存管理、通信协议与机制等角度分析了Nginx的底层原理和设计思路,揭示了Nginx高并发、高性能的本质,值得一读。

★陈雷,好未来学而思网校技术负责人 
本书详细地介绍了Nginx的原理和实现,从基础数据结构,到HTTP请求,再到反馈的整个流程,非常详细。对Nginx初学者与对Nginx有兴趣的读者来说,这本书都非常值得读。

展开
目录

前 言

第1章 Nginx源码与编译安装  1

1.1 Nginx优势与4种应用示例  1

1.2 Nginx源码结构  4

1.3 Nginx编译安装  5

1.4 本章小结  6


第2章 Nginx基础架构与设计理念  7

2.1 Nginx进程模型  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章 Nginx进程机制  86

6.1 Nginx进程模式  86

6.1.1 daemon模式  86

6.1.2 单进程模式和多进程模式  88

6.1.3 进程模式源码解析  88

6.2 Master进程  91

6.3 Worker进程  93

6.4 进程间通信机制  99

6.4.1 信号定义  99

6.4.2 信号注册  101

6.4.3 信号处理  102

6.4.4 Master进程处理机制  106

6.4.5 Worker进程处理机制  110

6.4.6 Master进程与Worker进程通信  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

12.5 中继模块  342

12.6 本章小结  347

展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证