[套装书]Nginx底层设计与源码分析+Nginx应用与运维实战(2册)

作者
聂松松 赵禹 施洪宝 王小东
丛书名
Web开发技术丛书
出版社
机械工业出版社
ISBN
9782106081611
简要
简介
内容简介书籍计算机书籍 ---------------------------8081282 - Nginx底层设计与源码分析--------------------------- 本书内容上分为三篇,共计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模块实现,让读者对跨平台原理实现、多进程管理、信号、信号量、共享内存、事件等知识点有一个更深入的理解。 ---------------------------8071611 - Nginx应用与运维实战--------------------------- 内容简介 这是一部基于Nginx新版本和云原生应用场景系统讲解Nginx的著作,是作者十余年运维经验的总结。本书从应用、运维以及与Kubernetes和微服务集成3个维度对Nginx的基础知识、工作原理、核心应用、运维管理、集成扩展等重点内容进行了全面、细致的讲解。完全以实战为导向,包含大量的配置案例和示例代码,能帮助读者快速掌握并在实际工作中熟练应用Nginx。 本书共13章,分为4个部分。 第一部分Nginx介绍(第1~4章) . 首先,简要分析了Nginx的架构特点及实现原理;其次,讲解了Nginx及其衍生版本Tengine、OpenResty的编译与部署;接着,全面介绍了Nginx的核心配置指令;最后,讲解了动态赋值、访问控制和数据处理这3个Nginx的HTTP功能模块配置指令。 第二部分应用实战(第5~8章) 分别介绍Nginx 在Web服务、代理服务、缓存服务和负载均衡等方面的应用实战,对于所涉及的每个模块,不仅详细分析了相关的技术特点,还给出了具体的配置指令和配置样例。 第三部分运维管理(第9~11章) 首先介绍Nginx的日志配置及基于ELK的日志分析,其次讲解Nginx 的状态监控配置,以及如何利用监控工具Prometheus、Zabbix实现对Nginx的监控管理;最后介绍如何基于LVS、Keepalived搭建Nginx集群负载均衡架构,以及如何结合Jenkins、GitLab和Ansible快速搭建Web化的Nginx集群配置管理框架。 第四部分Nginx与Kubernetes和微服务的应用集成(第12、13章) 分别介绍Nginx在Kubernetes、微服务架构中的应用,包括在Kubernetes中Nginx Ingress 的部署、管理与配置,以及基于OpenResty的开源微服务网关软件Kong的部署与应用。
目录
[套装书具体书目]
8071611 - Nginx应用与运维实战 - 9787111659921 - 机械工业出版社 - 定价 109
8081282 - Nginx底层设计与源码分析 - 9787111682745 - 机械工业出版社 - 定价 99



---------------------------8081282 - 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



---------------------------8071611 - Nginx应用与运维实战---------------------------


前言
第1章 Nginx概述1
1.1 Nginx的不同版本1
1.1.1 开源版Nginx2
1.1.2 商业版Nginx Plus3
1.1.3 分支版本Tengine4
1.1.4 扩展版本OpenResty4
1.2 Nginx源码架构浅析5
1.2.1 多进程模型6
1.2.2 工作流机制9
1.2.3 模块化12
第2章 Nginx编译及部署14
2.1 编译环境准备14
2.1.1 操作系统的准备14
2.1.2 Linux内核参数15
2.2 Nginx源码编译17
2.2.1 Nginx源码获取17
2.2.2 编译配置参数17
2.2.3 代码编译20
2.2.4 添加第三方模块21
2.3 Tengine源码编译21
2.3.1 Tengine源码获取21
2.3.2 编译配置参数22
2.3.3 代码编译22
2.3.4 Tengine集成的模块22
2.4 OpenResty源码编译24
2.4.1 OpenResty源码获取24
2.4.2 编译配置参数24
2.4.3 代码编译25
2.4.4 OpenResty集成的模块26
2.5 Nginx部署28
2.5.1 环境配置28
2.5.2 命令行参数28
2.5.3 注册系统服务29
2.6 Nginx的Docker容器化部署30
2.6.1 Docker简介30
2.6.2 Docker环境安装31
2.6.3 Dockerfile常用命令及编写31
2.6.4 Nginx Docker运行33
第3章 Nginx核心配置指令35
3.1 Nginx配置文件解析35
3.1.1 配置文件36
3.1.2 配置文件结构36
3.1.3 配置文件中的计量单位38
3.1.4 配置文件中的哈希表39
3.2 Nginx的进程核心配置指令39
3.2.1 进程管理39
3.2.2 进程调优40
3.2.3 进程调试44
3.2.4 事件处理45
3.2.5 核心指令配置样例48
3.3 HTTP核心配置指令48
3.3.1 初始化服务49
3.3.2 HTTP请求处理55
3.3.3 访问路由location65
3.3.4 访问重写rewrite69
3.3.5 访问控制73
3.3.6 数据处理76
3.3.7 关闭连接85
3.3.8 日志记录87
3.3.9 HTTP核心配置样例87
第4章 Nginx HTTP模块详解91
4.1 动态赋值功能模块91
4.1.1 根据浏览器动态赋值92
4.1.2 根据IP动态赋值94
4.1.3 根据IP动态获取城市信息95
4.1.4 比例分配赋值98
4.1.5 变量映射赋值98
4.2 访问控制功能模块101
4.2.1 访问镜像模块101
4.2.2 referer请求头控制模块102
4.2.3 连接校验模块104
4.2.4 源IP访问控制模块105
4.2.5 基本认证模块106
4.2.6 认证转发模块107
4.2.7 用户cookie模块109
4.2.8 并发连接数限制模块112
4.2.9 请求频率限制模块114
4.3 数据处理功能模块116
4.3.1 首页处理116
4.3.2 图片处理118
4.3.3 响应处理121
4.3.4 数据修改124
4.3.5 gzip压缩126
第5章 Nginx Web服务应用实战130
5.1 静态文件服务器的搭建130
5.1.1 静态Web服务器130
5.1.2 文件下载服务器131
5.1.3 伪动态SSI服务器132
5.2 HTTPS安全服务器的搭建137
5.2.1 配置指令137
5.2.2 HTTPS基本配置139
5.2.3 HTTPS密钥交换算法141
5.2.4 HTTPS会话缓存142
5.2.5 HTTPS双向认证配置143
5.2.6 HTTPS吊销证书配置144
5.2.7 HTTPS配置样例145
5.3 PHP网站搭建146
5.3.1 FastCGI模块指令146
5.3.2 PHP环境安装150
5.3.3 PHP网站配置样例151
5.3.4 FastCGI集群负载及缓存152
5.4 Python网站的搭建154
5.4.1 CGI、FastCGI、SCGI、WSGI154
5.4.2 uWSGI模块指令155
5.4.3 Python网站的搭建159
5.5 XSLT转换服务器162
5.5.1 模块配置指令162
5.5.2 XSLT服务器配置样例162
5.6 伪流媒体服务器的搭建164
5.6.1 模块配置指令165
5.6.2 伪流媒体配置样例165
5.7 HTTP增强协议服务器的搭建168
5.7.1 HTTP/2协议服务168
5.7.2 WebDAV协议服务169
第6章 Nginx代理服务应用实战173
6.1 HTTP代理173
6.1.1 模块指令173
6.1.2 正向代理177
6.1.3 HTTP的反向代理179
6.1.4 HTTPS的反向代理181
6.1.5 反向代理的真实客户端IP184
6.2 TCP/UDP代理185
6.2.1 stream核心模块185
6.2.2 stream辅助模块187
6.2.3 TCP/UDP代理194
6.2.4 基于SSL的TCP代理197
6.2.5 TCP/UDP代理的真实客户端IP199
6.3 gRPC代理202
6.3.1 gRPC介绍202
6.3.2 gRPC模块指令202
6.3.3 gRPC反向代理配置204
第7章 Nginx缓存服务应用实战206
7.1 Web缓存206
7.1.1 客户端缓存207
7.1.2 正向代理缓存211
7.1.3 内容分发网络211
7.1.4 反向代理缓存212
7.2 Nginx缓存模块213
7.2.1 代理缓存模块213
7.2.2 Memcached缓存模块218
7.3 Nginx缓存应用219
7.3.1 代理缓存服务器219
7.3.2 镜像缓存应用221
7.3.3 Memcached缓存应用223
7.3.4 客户端缓存控制226
7.4 缓存服务的管理与维护227
7.4.1 模块编译228
7.4.2 模块指令228
第8章 Nginx负载均衡应用实战231
8.1 Nginx负载均衡模块231
8.1.1 服务器配置指令232
8.1.2 负载均衡策略指令234
8.2 负载均衡策略236
8.2.1 轮询236
8.2.2 一致性哈希237
8.2.3 IP哈希239
8.2.4 最少连接240
8.2.5 随机负载算法241
8.3 负载均衡配置242
8.3.1 负载均衡的长连接242
8.3.2 upstream的容错机制245
8.3.3 动态更新upstream248
8.3.4 HTTP负载均衡配置253
8.3.5 FastCGI负载均衡配置253
8.3.6 uWSGI负载均衡配置254
8.3.7 gRPC负载均衡配置254
8.3.8 Memcached负载均衡配置255
8.4 TCP/UDP负载均衡255
8.4.1 TCP/UDP负载均衡255
8.4.2 TCP/UDP负载均衡的容错机制257
第9章 Nginx日志管理259
9.1 Nginx日志配置259
9.1.1 访问日志259
9.1.2 错误日志263
9.1.3 日志归档Logrotate264
9.1.4 日志输出到syslog268
9.2 Nginx日志收集分析269
9.2.1 ELK简介269
9.2.2 ELK安装271
9.2.3 Nginx日志分析276
第10章 Nginx监控配置及管理278
10.1 Nginx连接状态监控278
10.1.1 Nginx连接状态278
10.1.2 Nginx连接状态模块指令280
10.1.3 基于Zabbix的连接状态监控280
10.2 HTTP主机状态监控282
10.2.1 模块编译282
10.2.2 模块配置指令282
10.2.3 主机状态监控配置286
10.3 TCP/UDP主机状态监控287
10.3.1 模块编译287
10.3.2 模块配置指令287
10.3.3 TCP/UDP主机状态监控配置290
10.4 监控工具Prometheus291
10.4.1 Prometheus简介291
10.4.2 Prometheus部署292
10.4.3 监控HTTP主机状态296
10.4.4 监控TCP/UDP主机状态299
10.4.5 Prometheus监控告警302
10.5 监控工具Zabbix304
10.5.1 Zabbix简介305
10.5.2 Zabbix环境搭建306
10.5.3 Zabbix Agent安装310
10.5.4 Zabbix获取Prometheus数据311
第11章 Nginx集群负载与配置管理314
11.1 Nginx集群负载315
11.1.1 多层负载均衡架构315
11.1.2 LVS简介315
11.1.3 Keepalived简介320
11.1.4 Nginx集群负载搭建327
11.2 Nginx集群配置管理331
11.2.1 Nginx集群配置管理规划331
11.2.2 配置归档工具GitLab335
11.2.3 配置修改工具Ansible336
11.2.4 配置发布工具Jenkins338
11.2.5 Nginx配置管理实例340
第12章 Nginx在Kubernetes中的应用351
12.1 Kubernetes简介352
12.1.1 Kubernetes架构简述352
12.1.2 Kubernetes相关术语353
12.1.3 Kubernetes集群部署360
12.1.4 Kubernetes网络通信366
12.2 Nginx Ingress375
12.2.1 Nginx Ingress原理375
12.2.2 集成的第三方模块376
12.2.3 安装部署378
12.2.4 日志管理383
12.2.5 监控管理384
12.3 Nginx Ingress配置385
12.3.1 配置映射ConfigMap385
12.3.2 注解Annotations396
第13章 Nginx在微服务架构中的应用411
13.1 认识微服务411
13.1.1 为什么需要微服务411
13.1.2 微服务的技术特点414
13.1.3 微服务的进化416
13.2 基于Nginx的微服务网关418
13.2.1 Nginx产品组件419
13.2.2 开源微服务网关Kong419
13.2.3 安装部署423
13.2.4 微服务网关应用427

推荐

车牌查询
桂ICP备20004708号-3