深入理解Nginx:模块开发与架构解析(第2版) (Linux/Unix技术丛书) 🔍
陶辉 著 [著, 陶辉]
机械工业出版社, 2016
中文 [zh] · PDF · 37.2MB · 2016 · 📘 非小说类图书 · 🚀/lgli/upload/zlib · Save
描述
前言 5
第一部分 Nginx能帮我们做什么 9
第1章 研究Nginx前的准备工作 9
1.1 Nginx是什么 12
1.2 为什么选择Nginx 15
1.3 准备工作 16
1.4 编译安装Nginx 17
1.5 configure详解 21
1.6 Nginx的命令行控制 25
1.7 小结 29
第2章 Nginx的配置 32
2.1 运行中的Nginx进程间的关系 33
2.2 Nginx配置的通用语法 44
2.3 Nginx服务的基本配置 48
2.4 用HTTP核心模块配置一个静态Web服务器 49
2.5 用HTTP proxy module配置一个反向代理服务器 52
2.6 小结 56
第二部分 如何编写HTTP模块 58
第3章 开发一个简单的HTTP模块 59
3.1 如何调用HTTP模块 60
3.2 准备工作 64
3.3 如何将自己的HTTP模块编译进Nginx 69
3.4 HTTP模块的数据结构 73
3.5 定义自己的HTTP模块 77
3.6 处理用户请求 80
3.7 发送响应 84
3.8 将磁盘文件作为包体发送 89
3.9 用C++语言编写HTTP模块 93
3.10 小结 97
第4章 配置、error日志和请求上下文 102
4.1 http配置项的使用场景 107
4.2 怎样使用http配置 112
4.3 HTTP配置模型 117
4.4 error日志的用法 122
4.5 请求的上下文 124
4.6 小结 125
第5章 访问第三方服务 126
5.1 upstream的使用方式 127
5.2 回调方法的执行场景 130
5.3 使用upstream的示例 134
5.4 subrequest的使用方式 140
5.5 subrequest执行过程中的主要场景 149
5.6 subrequest使用的例子 152
5.7 小结 155
第6章 开发一个简单的HTTP过滤模块 155
6.1 过滤模块的意义 165
6.2 过滤模块的调用顺序 165
6.3 HTTP过滤模块的开发步骤 171
6.4 HTTP过滤模块的简单例子 175
6.5 小结 183
第7章 Nginx提供的高级数据结构 188
7.1 Nginx提供的高级数据结构概述 192
7.2 ngx_queue_t双向链表 200
7.3 ngx_array_t动态数组 203
7.4 ngx_list_t单向链表 208
7.5 ngx_rbtree_t红黑树 215
7.6 ngx_radix_tree_t基数树 221
7.7 支持通配符的散列表 225
7.8 小结 228
第三部分 深入Nginx 229
第8章 Nginx基础架构 230
8.1 Web服务器设计中的关键约束 232
8.2 Nginx的架构设计 237
8.3 Nginx框架中的核心结构体ngx_cycle_t 243
8.4 Nginx启动时框架的处理流程 248
8.5 worker进程是如何工作的 252
8.6 master进程是如何工作的 256
8.7 ngx_pool_t内存池 260
8.8 小结 263
第9章 事件模块 268
9.1 事件处理框架概述 275
9.2 Nginx事件的定义 279
9.3 Nginx连接的定义 283
9.4 ngx_events_module核心模块 286
9.5 ngx_event_core_module事件模块 289
9.6 epoll事件驱动模块 291
9.7 定时器事件 292
9.8 事件驱动框架的处理流程 294
9.9 文件的异步I/O 298
9.10 TCP协议与Nginx 305
9.11 小结 311
第10章 HTTP框架的初始化 318
10.1 HTTP框架概述 321
10.2 管理HTTP模块的配置项 327
10.3 监听端口的管理 334
10.4 server的快速检索 340
10.5 location的快速检索 346
10.6 HTTP请求的11个处理阶段 350
10.7 HTTP框架的初始化流程 352
10.8 小结 356
第11章 HTTP框架的执行流程 362
11.1 HTTP框架执行流程概述 363
11.2 新连接建立时的行为 368
11.3 第一次可读事件的处理 376
11.4 接收HTTP请求行 377
11.5 接收HTTP头部 378
11.6 处理HTTP请求 380
11.7 subrequest与post请求 383
11.8 处理HTTP包体 388
11.9 发送HTTP响应 390
11.10 结束HTTP请求 397
11.11 小结 403
第12章 upstream机制的设计与实现 407
12.1 upstream机制概述 408
12.2 启动upstream 409
12.3 与上游服务器建立连接 411
12.4 发送请求到上游服务器 416
12.5 接收上游服务器的响应头部 420
12.6 不转发响应时的处理流程 425
12.7 以下游网速优先来转发响应 427
12.8 以上游网速优先来转发响应 428
12.9 结束upstream请求 434
12.10 小结 439
第13章 邮件代理模块 442
13.1 邮件代理服务器的功能 447
13.2 邮件模块的处理框架 449
13.3 初始化请求 453
13.4 接收并解析客户端请求 460
13.5 邮件认证 465
13.6 与上游邮件服务器间的认证交互 470
13.7 透传上游邮件服务器与客户端间的流 473
13.8 小结 474
第14章 进程间的通信机制 475
14.1 概述 476
14.2 共享内存 480
14.3 原子操作 485
14.4 Nginx频道 490
14.5 信号 495
14.6 信号量 497
14.7 文件锁 497
14.8 互斥锁 504
14.9 小结 511
第15章 变量 514
15.1 使用内部变量开发模块 519
15.2 内部变量工作原理 523
15.3 定义内部变量 529
15.4 外部变量与脚本引擎 532
15.5 小结 537
第16章 slab共享内存 543
16.1 操作slab共享内存的方法 545
16.2 使用slab共享内存池的例子 546
16.3 slab内存管理的实现原理 548
16.4 小结 554
第一部分 Nginx能帮我们做什么 9
第1章 研究Nginx前的准备工作 9
1.1 Nginx是什么 12
1.2 为什么选择Nginx 15
1.3 准备工作 16
1.4 编译安装Nginx 17
1.5 configure详解 21
1.6 Nginx的命令行控制 25
1.7 小结 29
第2章 Nginx的配置 32
2.1 运行中的Nginx进程间的关系 33
2.2 Nginx配置的通用语法 44
2.3 Nginx服务的基本配置 48
2.4 用HTTP核心模块配置一个静态Web服务器 49
2.5 用HTTP proxy module配置一个反向代理服务器 52
2.6 小结 56
第二部分 如何编写HTTP模块 58
第3章 开发一个简单的HTTP模块 59
3.1 如何调用HTTP模块 60
3.2 准备工作 64
3.3 如何将自己的HTTP模块编译进Nginx 69
3.4 HTTP模块的数据结构 73
3.5 定义自己的HTTP模块 77
3.6 处理用户请求 80
3.7 发送响应 84
3.8 将磁盘文件作为包体发送 89
3.9 用C++语言编写HTTP模块 93
3.10 小结 97
第4章 配置、error日志和请求上下文 102
4.1 http配置项的使用场景 107
4.2 怎样使用http配置 112
4.3 HTTP配置模型 117
4.4 error日志的用法 122
4.5 请求的上下文 124
4.6 小结 125
第5章 访问第三方服务 126
5.1 upstream的使用方式 127
5.2 回调方法的执行场景 130
5.3 使用upstream的示例 134
5.4 subrequest的使用方式 140
5.5 subrequest执行过程中的主要场景 149
5.6 subrequest使用的例子 152
5.7 小结 155
第6章 开发一个简单的HTTP过滤模块 155
6.1 过滤模块的意义 165
6.2 过滤模块的调用顺序 165
6.3 HTTP过滤模块的开发步骤 171
6.4 HTTP过滤模块的简单例子 175
6.5 小结 183
第7章 Nginx提供的高级数据结构 188
7.1 Nginx提供的高级数据结构概述 192
7.2 ngx_queue_t双向链表 200
7.3 ngx_array_t动态数组 203
7.4 ngx_list_t单向链表 208
7.5 ngx_rbtree_t红黑树 215
7.6 ngx_radix_tree_t基数树 221
7.7 支持通配符的散列表 225
7.8 小结 228
第三部分 深入Nginx 229
第8章 Nginx基础架构 230
8.1 Web服务器设计中的关键约束 232
8.2 Nginx的架构设计 237
8.3 Nginx框架中的核心结构体ngx_cycle_t 243
8.4 Nginx启动时框架的处理流程 248
8.5 worker进程是如何工作的 252
8.6 master进程是如何工作的 256
8.7 ngx_pool_t内存池 260
8.8 小结 263
第9章 事件模块 268
9.1 事件处理框架概述 275
9.2 Nginx事件的定义 279
9.3 Nginx连接的定义 283
9.4 ngx_events_module核心模块 286
9.5 ngx_event_core_module事件模块 289
9.6 epoll事件驱动模块 291
9.7 定时器事件 292
9.8 事件驱动框架的处理流程 294
9.9 文件的异步I/O 298
9.10 TCP协议与Nginx 305
9.11 小结 311
第10章 HTTP框架的初始化 318
10.1 HTTP框架概述 321
10.2 管理HTTP模块的配置项 327
10.3 监听端口的管理 334
10.4 server的快速检索 340
10.5 location的快速检索 346
10.6 HTTP请求的11个处理阶段 350
10.7 HTTP框架的初始化流程 352
10.8 小结 356
第11章 HTTP框架的执行流程 362
11.1 HTTP框架执行流程概述 363
11.2 新连接建立时的行为 368
11.3 第一次可读事件的处理 376
11.4 接收HTTP请求行 377
11.5 接收HTTP头部 378
11.6 处理HTTP请求 380
11.7 subrequest与post请求 383
11.8 处理HTTP包体 388
11.9 发送HTTP响应 390
11.10 结束HTTP请求 397
11.11 小结 403
第12章 upstream机制的设计与实现 407
12.1 upstream机制概述 408
12.2 启动upstream 409
12.3 与上游服务器建立连接 411
12.4 发送请求到上游服务器 416
12.5 接收上游服务器的响应头部 420
12.6 不转发响应时的处理流程 425
12.7 以下游网速优先来转发响应 427
12.8 以上游网速优先来转发响应 428
12.9 结束upstream请求 434
12.10 小结 439
第13章 邮件代理模块 442
13.1 邮件代理服务器的功能 447
13.2 邮件模块的处理框架 449
13.3 初始化请求 453
13.4 接收并解析客户端请求 460
13.5 邮件认证 465
13.6 与上游邮件服务器间的认证交互 470
13.7 透传上游邮件服务器与客户端间的流 473
13.8 小结 474
第14章 进程间的通信机制 475
14.1 概述 476
14.2 共享内存 480
14.3 原子操作 485
14.4 Nginx频道 490
14.5 信号 495
14.6 信号量 497
14.7 文件锁 497
14.8 互斥锁 504
14.9 小结 511
第15章 变量 514
15.1 使用内部变量开发模块 519
15.2 内部变量工作原理 523
15.3 定义内部变量 529
15.4 外部变量与脚本引擎 532
15.5 小结 537
第16章 slab共享内存 543
16.1 操作slab共享内存的方法 545
16.2 使用slab共享内存池的例子 546
16.3 slab内存管理的实现原理 548
16.4 小结 554
备用文件名
lgli/陶辉 著 [著, 陶辉] - 深入理解Nginx:模块开发与架构解析(第2版) (Linux/Unix技术丛书) (2016, 机械工业出版社).pdf
备用文件名
zlib/Computers/Web Development/陶辉 著 [著, 陶辉]/深入理解Nginx:模块开发与架构解析(第2版) (Linux/Unix技术丛书)_5744792.pdf
元数据中的注释
producers:
calibre 2.63.0 [https://calibre-ebook.com]
calibre 2.63.0 [https://calibre-ebook.com]
开源日期
2020-09-04
🚀 快速下载
成为会员以支持书籍、论文等的长期保存。为了感谢您对我们的支持,您将获得高速下载权益。❤️
如果您在本月捐款,您将获得双倍的快速下载次数。
🐢 低速下载
由可信的合作方提供。 更多信息请参见常见问题解答。 (可能需要验证浏览器——无限次下载!)
- 低速服务器(合作方提供) #1 (稍快但需要排队)
- 低速服务器(合作方提供) #2 (稍快但需要排队)
- 低速服务器(合作方提供) #3 (稍快但需要排队)
- 低速服务器(合作方提供) #4 (稍快但需要排队)
- 低速服务器(合作方提供) #5 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #6 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #7 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #8 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #9 (无需排队,但可能非常慢)
- 下载后: 在我们的查看器中打开
所有选项下载的文件都相同,应该可以安全使用。即使这样,从互联网下载文件时始终要小心。例如,确保您的设备更新及时。
外部下载
-
对于大文件,我们建议使用下载管理器以防止中断。
推荐的下载管理器:JDownloader -
您将需要一个电子书或 PDF 阅读器来打开文件,具体取决于文件格式。
推荐的电子书阅读器:Anna的档案在线查看器、ReadEra和Calibre -
使用在线工具进行格式转换。
推荐的转换工具:CloudConvert和PrintFriendly -
您可以将 PDF 和 EPUB 文件发送到您的 Kindle 或 Kobo 电子阅读器。
推荐的工具:亚马逊的“发送到 Kindle”和djazz 的“发送到 Kobo/Kindle” -
支持作者和图书馆
✍️ 如果您喜欢这个并且能够负担得起,请考虑购买原版,或直接支持作者。
📚 如果您当地的图书馆有这本书,请考虑在那里免费借阅。
下面的文字仅以英文继续。
总下载量:
“文件的MD5”是根据文件内容计算出的哈希值,并且基于该内容具有相当的唯一性。我们这里索引的所有影子图书馆都主要使用MD5来标识文件。
一个文件可能会出现在多个影子图书馆中。有关我们编译的各种数据集的信息,请参见数据集页面。
有关此文件的详细信息,请查看其JSON 文件。 Live/debug JSON version. Live/debug page.