深入理解Nginx :模块开发与架构解析 PDF 高清电子书 免费下载 完整版 在线阅读- 高飞网
深入理解Nginx

深入理解Nginx
模块开发与架构解析

陶辉
Nginx
浏览人数:199 在读人数:4
本书是阿里巴巴资深Nginx技术专家呕心沥血之作,是作者多年的经验结晶,也是目前市场上唯一一本通过还原Nginx设计思想,剖析Nginx架构来帮助读者快速高效开发HTTP模块的图书。
本书首先通过介绍官方Nginx的基本用法和配置规则,帮助读者了解一般Nginx模块的用法,然后重点介绍如何开发HTTP模块(含HTTP过滤模块)来得到定制的Nginx,其中包括开发一个功能复杂的模块所需要了解的各种知识,如Nginx的基础数据结构、配置项的解析、记录日志的工具以及upstream、subrequest的使用方法等。在此基础上,综合Nginx框架代码分析Nginx的架构,介绍其设计理念和技巧,进一步帮助读者自由、有效地开发出功能丰富、性能一流的Nginx模块。

前 言 -15   
第一部分 Nginx能帮我们做什么 1   
第1章 研究Nginx前的准备工作 2   
1.1 Nginx是什么 2   
1.2 为什么选择Nginx 4   
1.3 准备工作 7   
1.4 编译安装Nginx 11   
1.5 configure详解 11   
1.6 Nginx的命令行控制 24   
1.7 小结 27   
第2章 Nginx的配置 28   
2.1 运行中的Nginx进程间的关系 28   
2.2 Nginx配置的通用语法 31   
2.3 Nginx服务的基本配置 34   
2.4 用HTTP核心模块配置一个静态Web服务器 41   
2.5 用HTTP proxy module配置一个反向代理服务器 60   
2.6 小结 68   
第二部分 如何编写HTTP模块   
第3章 开发一个简单的HTTP模块 70   
3.1 如何调用HTTP模块 70   
3.2 准备工作 72   
3.3 如何将自己的HTTP模块编译进Nginx 79   
3.4 HTTP模块的数据结构 85   
3.5 定义自己的HTTP模块 88   
3.6 处理用户请求 92   
3.7 发送响应 102   
3.8 将磁盘文件作为包体发送 107   
3.9 用C++语言编写HTTP模块 112   
3.10 小结 114   
第4章 配置、error日志和请求上下文 115   
4.1 http配置项的使用场景 115   
4.2 怎样使用http配置 117   
4.3 HTTP配置模型 140   
4.4 error日志的用法 150   
4.5 请求的上下文 155   
4.6 小结 158   
第5章 访问第三方服务 159   
5.1 upstream的使用方式 160   
5.2 回调方法的执行场景 167   
5.3 使用upstream的示例 173   
5.4 subrequest的使用方式 183   
5.5 subrequest执行过程中的主要场景 186   
5.6 subrequest使用的例子 193   
5.7 小结 198   
第6章 开发一个简单的HTTP过滤模块 199   
6.1 过滤模块的意义 199   
6.2 过滤模块的调用顺序 200   
6.3 HTTP过滤模块的开发步骤 206   
6.4 HTTP过滤模块的简单例子 207   
6.5 小结 214   
第7章 Nginx提供的高级数据结构 215   
7.1 Nginx提供的高级数据结构概述 215   
7.2 ngx_queue_t双向链表 217   
7.3 ngx_array_t动态数组 222   
7.4 ngx_list_t单向链表 226   
7.5 ngx_rbtree_t红黑树 227   
7.6 ngx_radix_tree_t基数树 236   
7.7 支持通配符的散列表 240   
7.8 小结 254   
第三部分 深入Nginx   
第8章 Nginx基础架构 256   
8.1 Web服务器设计中的关键约束 256   
8.2 Nginx的架构设计 259   
8.3 Nginx框架中的核心结构体ngx_cycle_t 269   
8.4 Nginx启动时框架的处理流程 275   
8.5 worker进程是如何工作的 278   
8.6 master进程是如何工作的 281   
8.7 小结 286   
第9章 事件模块 287   
9.1 事件处理框架概述 287   
9.2 Nginx事件的定义 290   
9.3 Nginx连接的定义 293   
9.4 ngx_events_module核心模块 300   
9.5 ngx_event_core_module事件模块 305   
9.6 epoll事件驱动模块 310   
9.7 定时器事件 323   
9.8 事件驱动框架的处理流程 328   
9.9 文件的异步IO 338   
9.10 小结 346   
第10章 HTTP框架的初始化 347   
10.1 HTTP框架概述 348   
10.2 管理HTTP模块的配置项 351   
10.3 监听端口的管理 367   
10.4 server的快速检索 369   
10.5 location的快速检索 371   
10.6 HTTP请求的11个处理阶段 372   
10.7 HTTP框架的初始化流程 383   
10.8 小结 385   
第11章 HTTP框架的执行流程 386   
11.1 HTTP框架执行流程概述 387   
11.2 新连接建立时的行为 388   
11.3 第一次可读事件的处理 390   
11.4 接收HTTP请求行 396   
11.5 接收HTTP头部 399   
11.6 处理HTTP请求 403   
11.7 subrequest与post请求 419   
11.8 处理HTTP包体 421   
11.9 发送HTTP响应 433   
11.10 结束HTTP请求 442   
11.11 小结 452   
第12章 upstream机制的设计与实现 453   
12.1 upstream机制概述 453   
12.2 启动upstream 462   
12.3 与上游服务器建立连接 464   
12.4 发送请求到上游服务器 467   
12.5 接收上游服务器的响应头部 470   
12.6 不转发响应时的处理流程 476   
12.7 以下游网速优先来转发响应 481   
12.8 以上游网速优先来转发响应 489   
12.9 结束upstream请求 504   
12.10 小结 508   
第13章 邮件代理模块 509   
13.1 邮件代理服务器的功能 509   
13.2 邮件模块的处理框架 512   
13.3 初始化请求 517   
13.4 接收并解析客户端请求 520   
13.5 邮件认证 520   
13.6 与上游邮件服务器间的认证交互 526   
13.7 透传上游邮件服务器与客户端间的流 530   
13.8 小结 535   
第14章 进程间的通信机制 536   
14.1 概述 536   
14.2 共享内存 536   
14.3 原子操作 541   
14.4 Nginx频道 546   
14.5 信号 549   
14.6 信号量 551   
14.7 文件锁 553   
14.8 互斥锁 556   
14.9 小结 565   
看过本书的人还看过