《Kong网关:入门、实战与进阶》

内容简介

这是一本关于Kong网关开发和运维的集大成之作。作者基于自己在该领域的丰富实践经验,从零开始,不仅循序渐进地讲解了Kong网关的核心概念、使用方法、工作原理、工程实践和源码,而且还将微服务设计、分布式架构、DevOps等相关技术融入其中,帮助读者打通Kong网关的整个技术体系,轻松跨越从理论到项目实战的鸿沟。

全书共16章,分为4篇,具体内容如下。

入门篇(第1~4章)

首先对网关层和Kong网关做了整体性介绍,然后有针对性地讲解了Nginx、OpenResty和Lua语言等必备知识,为之后深入学习打下基础。

基础篇(第5~8章)

这部分围绕Kong网关的日常配置和操作展开,具体包括Kong网关配置文件、部署方案、命令行向导、代理、鉴权、负载均衡策略和健康检查机制等内容。

进阶篇(第9~12章)

主要介绍了Kong网关区别于其他传统网关的插件机制,以及Kong网关在整个架构体系中与其他系统之间的交互和联动。

应用篇(第13~16章)

主要结合当前日益成熟的云原生环境,给出Kong网关在不同场景下的整体解决方案,如与微服务、Service Mesh、Kubernetes、Serverless的结合等。

作者简介


孔庆雍

毕业于同济大学,曾就职于华为、中国移动、数禾科技等多家公司,任职期间参与了多个大型系统设计、研发工作。现任上海珞瑾数据信息有限公司CTO、首席架构师,在现公司主导了内部自研DevOps平台的搭建及底层架构设计与规划。敏捷开发思想践行者,擅长利用技术推进项目管理与产品交付。

在企业级SaaS服务、大规模分布式架构、微服务治理、网关层设计研发等领域积累了丰富的经验,在现公司主导研发的酒店管理系统已累计覆盖10万家门店,日均请求量超1亿。

目录


前言
入门篇
第1章 全面了解Kong网关 2
1.1 网关简介 2
1.1.1 网关的由来 3
1.1.2 网关的作用 3
1.2 Kong网关简介 6
1.2.1 Kong网关的发展历程 6
1.2.2 Kong网关与传统网关对比 6
1.2.3 其他主流网关 7
1.3 Kong网关基础组件 12
1.3.1 Kong服务器 12
1.3.2 数据库 13
1.3.3 Kong管理GUI 14
1.4 Kong网关安装指南 14
1.4.1 在Mac环境中安装Kong网关 15
1.4.2 在Linux环境中安装Kong网关 15
1.4.3 在Docker环境中安装Kong网关 15
1.5 使用Kong网关搭建Web应用 16
1.5.1 示例项目介绍 16
1.5.2 后端服务路由 18
1.5.3 静态页面代理 20
1.6 本章小结 24
第2章 Nginx必备知识 25
2.1 Nginx安装 25
2.1.1 在Mac环境中安装Nginx 25
2.1.2 在Linux环境中安装Nginx 26
2.1.3 在Docker环境中安装Nginx 26
2.2 Nginx详解 26
2.2.1 Nginx文件的目录结构 26
2.2.2 命令行参数 28
2.2.3 配置文件 29
2.2.4 依赖库 32
2.2.5 Nginx的工作原理 33
2.2.6 Nginx优化指南 35
2.3 项目实践 37
2.3.1 从Kong切换到Nginx 37
2.3.2 添加黑白名单 39
2.3.3 添加限流 39
2.3.4 从Nginx切换到Kong 41
2.3.5 小结 41
2.4 本章小结 42
第3章 Lua必备知识 43
3.1 Lua入门与规范 43
3.1.1 基础知识 43
3.1.2 安装指南 44
3.1.3 解释器 45
3.1.4 语法规范 46
3.2 数据类型 47
3.3 操作符 52
3.4 表达式语句 54
3.4.1 赋值语句 54
3.4.2 控制语句 55
3.5 Lua库 58
3.6 本章小结 62
第4章 OpenResty必备知识 63
4.1 OpenResty入门安装 63
4.1.1 在Mac环境中安装OpenResty 63
4.1.2 在Linux环境中安装OpenResty 64
4.1.3 在Docker环境中安装OpenResty 64
4.2 OpenResty详解 64
4.2.1 OpenResty服务器的目录结构 64
4.2.2 Resty CLI 65
4.2.3 OpenResty包管理工具 67
4.3 OpenResty工作原理 69
4.4 OpenResty性能优化 71
4.4.1 避免使用阻塞函数 72
4.4.2 巧用table组件 72
4.4.3 使用缓存 73
4.4.4 火焰图 73
4.5 项目实践 75
4.6 本章小结 82
基础篇
第5章 Kong网关配置与部署 84
5.1 Kong启动项配置 84
5.1.1 配置项加载流程 85
5.1.2 配置项详解 86
5.1.3 环境变量 89
5.1.4 配置文件示例 89
5.2 注入Nginx指令 90
5.2.1 注入单个Nginx指令 91
5.2.2 通过文件方式注入Nginx指令 92
5.3 个性化使用场景 92
5.3.1 自定义Nginx模板文件 93
5.3.2 在OpenResty实例中嵌入Kong 93
5.4 Kong网关部署 94
5.4.1 无数据库部署模式 94
5.4.2 数据库部署模式 97
5.4.3 混合部署模式 100
5.5 本章小结 102
第6章 Kong网关命令行 103
6.1 通用标志参数 104
6.2 Kong网关命令行详解 104
6.2.1 kong check 104
6.2.2 kong config 106
6.2.3 kong health 109
6.2.4 kong hybrid 109
6.2.5 kong migrations 110
6.2.6 kong prepare 112
6.2.7 kong quit 113
6.2.8 kong reload 113
6.2.9 kong restart 114
6.2.10 kong start 114
6.2.11 kong stop 115
6.2.12 kong version 116
6.3 本章小结 116
第7章 Kong网关代理及鉴权 117
7.1 Kong网关代理基础知识 117
7.1.1 Kong网关术语简介 117
7.1.2 Kong网关代理环境配置 118
7.2 Kong网关代理示例 118
7.3 路由匹配规则 121
7.3.1 通用匹配规则 121
7.3.2 paths属性 123
7.3.3 hosts属性 126
7.3.4 methods属性 128
7.3.5 headers属性(hosts除外) 129
7.3.6 sources & destinations属性 129
7.3.7 snis属性 129
7.4 路由匹配优先级 130
7.4.1 优先级策略 130
7.4.2 后备路由策略 131
7.5 Kong网关代理行为 132
7.5.1 超时机制 132
7.5.2 错误重试机制 133
7.5.3 插件执行策略 133
7.5.4 响应内容 133
7.6 配置SSL协议 134
7.7 代理WebSocket流量 135
7.8 代理gRPC流量 138
7.9 Kong网关鉴权 140
7.9.1 通用鉴权流程 140
7.9.2 匿名接入流程 142
7.9.3 多重认证策略 143
7.10 本章小结 144
第8章 Kong网关负载均衡策略与健康检查 145
8.1 负载均衡 145
8.1.1 负载均衡简介 145
8.1.2 负载均衡解决方案 146
8.1.3 Kong网关中的负载均衡 146
8.2 基于DNS的负载均衡 146
8.2.1 A记录(包含AAAA记录) 147
8.2.2 SRV记录 147
8.2.3 DNS 记录优先级 147
8.2.4 其他注意事项 148
8.3 环状负载均衡器 148
8.3.1 基础概念 148
8.3.2 负载均衡策略 150
8.3.3 其他注意事项 151
8.4 负载均衡特性使用场景 151
8.4.1 蓝绿发布 151
8.4.2 金丝雀发布 155
8.5 健康检查 157
8.5.1 健康检查标准 157
8.5.2 健康检查类型 159
8.5.3 健康检查配置 160
8.6 本章小结 162
进阶篇
第9章 Kong网关插件 164
9.1 Kong网关插件简介 164
9.1.1 Kong网关插件概念 164
9.1.2 Kong网关插件原理 165
9.2 Kong官方插件 166
9.2.1 鉴权类插件 166
9.2.2 安全类插件 177
9.2.3 流量类插件 179
9.2.4 分析监控类插件 195
9.2.5 内容转换类插件 197
9.2.6 日志类插件 204
9.2.7 其他插件 210
9.3 自定义Kong网关插件 210
9.3.1 自定义插件开发流程和插件生命周期管理详解 210
9.3.2 插件开发套件 240
9.3.3 Go插件开发向导 241
9.3.4 自定义插件实例 243
9.4 本章小结 245
第10章 Kong网关日志 246
10.1 Kong网关日志简介 246
10.1.1 Kong网关日志分类 246
10.1.2 Kong网关日志级别 248
10.2 Kong网关结合日志平台 249
10.2.1 ELK方案简介 249
10.2.2 Kong网关结合ELK 253
10.2.3 日志系统使用场景 256
10.3 自定义日志 261
10.3.1 Kong网关定制日志 262
10.3.2 ELK定制日志 264
10.3.3 小结 265
10.4 本章小结 266
第11章 Kong网关运维 267
11.1 资源选型 267
11.1.1 服务器资源 267
11.1.2 数据库资源 268
11.1.3 弹性伸缩 269
11.1.4 性能参数 269
11.2 Kong网关监控 270
11.2.1 监控平台选型 270
11.2.2 搭建监控平台 271
11.2.3 Kong网关监控平台配置 272
11.2.4 Kong网关监控平台指标详解 278
11.2.5 Kong监控平台指标测试 279
11.2.6 Kong监控平台的预警功能 281
11.3 Kong网关运维 284
11.3.1 数据备份 284
11.3.2 软/硬件维护 286
11.3.3 突发事件处理 288
11.4 本章小结 288
第12章 Kong网关安全与集群高可用 289
12.1 Kong网关安全配置 289
12.1.1 网络层访问限制 289
12.1.2 Kong API 回路 290
12.1.3 自定义Nginx配置 291
12.2 Kong集群 292
12.2.1 Kong集群简介 292
12.2.2 Kong集群缓存 293
12.3 Kong网关高可用 298
12.3.1 架构设计 298
12.3.2 引入HAProxy层 300
12.3.3 高可用方案测试 301
12.4 本章小结 308
应用篇
第13章 Kong网关结合微服务架构 310
13.1 微服务简介 310
13.1.1 微服务的优点 311
13.1.2 单体应用和微服务 311
13.1.3 微服务12要素 313
13.2 单体应用向微服务迁移 313
13.2.1 采用微服务的注意事项 314
13.2.2 迁移细节 314
13.3 使用CI/CD流程促进微服务开发 316
13.3.1 CI/CD流程基础组件 316
13.3.2 构建CI/CD流程 318
13.4 基于Kong打造DevOps平台 320
13.4.1 场景描述 320
13.4.2 设计思路 321
13.4.3 DevOps平台使用指南 325
13.4.4 DevOps平台源码解析 329
13.4.5 DevOps平台扩展 335
13.5 本章小结 336
第14章 Kong网关结合Kubernetes架构方案 337
14.1 Kubernetes详解 337
14.1.1 Kubernetes简介 337
14.1.2 Kubernetes发展史 338
14.1.3 Kubernetes基本概念和术语 340
14.1.4 Kubernetes的HelloWorld示例 342
14.2 Kubernetes与Kong网关结合 350
14.2.1 概念描述 350
14.2.2 使用Kubernetes安装Kong 358
14.3 Kubernetes实战 359
14.3.1 安装Kong网关 359
14.3.2 使用Kong网关 360
14.3.3 配置Kong网关插件 361
14.4 本章小结 363
第15章 Service Mesh实践之Kuma 364
15.1 Service Mesh简介 364
15.2 Kuma简介 366
15.2.1 为什么使用Kuma 366
15.2.2 Kuma与其他Service Mesh方案的比较 366
15.2.3 Kuma系统组件 367
15.2.4 Kuma部署示例 368
15.3 Kuma策略概述 369
15.3.1 策略配置项描述 369
15.3.2 使用策略 370
15.3.3 策略匹配规则 371
15.4 Kuma内置策略详解 372
15.4.1 安全类策略 372
15.4.2 流量控制类策略 376
15.4.3 观测类策略 382
15.5 Kuma实战 388
15.5.1 适配Kuma架构 388
15.5.2 启动mTSL和TrafficPermission 390
15.6 本章小结 391
第16章 Serverless架构 392
16.1 Serverless简介 392
16.1.1 系统架构演化 392
16.1.2 部署方式演化 393
16.1.3 Serverless内核 395
16.2 Serverless实践 396
16.2.1 搭建开发环境 396
16.2.2 Web应用服务 402
16.3 本章小结 407
附录A Docker安装指南 408
附录B KONGA安装指南 412
附录C 数据库明细 417
附录D Admin API 422

Kong网关:入门、实战与进阶 PDF 下载


链接:https://pan.baidu.com/s/1YFO45uMvXnnGbV-wMe_kTw?pwd=1bpi

提取码:1bpi

复制这段内容后打开百度网盘手机App,操作更方便哦