当前位置: 首页 > news >正文

一本书带你吃透Nginx应用与运维

新书速递

导读:Nginx作为一款优秀的开源Web服务器软件,因具有性能稳定、高并发能力强、资源耗用低及高性能的负载均衡等特点,被众多互联网公司广泛应用于实际生产项目中。因此,它也成为每个互联网技术人员的必备技能。

 

今天为大家介绍一本新书《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的部署与应用。

 

点击链接了解详情并购买

目录

●第1章 Nginx概述1

1.1Nginx的不同版本1

1.1.1 开源版Nginx2

1.1.2 商业版Nginx Plus3

1.1.3 分支版本Tengine4

1.1.4 扩展版本OpenResty4

1.2Nginx源码架构浅析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.2Linux内核参数15

2.2Nginx源码编译17

2.2.1Nginx源码获取17

2.2.2 编译配置参数17

2.2.3 代码编译20

2.2.4 添加第三方模块21

2.3Tengine源码编译21

2.3.1Tengine源码获取21

2.3.2 编译配置参数22

2.3.3 代码编译22

2.3.4Tengine集成的模块22

2.4OpenResty源码编译24

2.4.1OpenResty源码获取24

2.4.2 编译配置参数24

2.4.3 代码编译25

2.4.4OpenResty集成的模块26

2.5Nginx部署28

2.5.1 环境配置28

2.5.2 命令行参数28

2.5.3 注册系统服务29

2.6Nginx的Docker容器化部署30

2.6.1Docker简介30

2.6.2Docker环境安装31

2.6.3Dockerfile常用命令及编写31

2.6.4Nginx Docker运行33

 

●第3章 Nginx核心配置指令35

3.1Nginx配置文件解析35

3.1.1 配置文件目录36

3.1.2 配置文件结构36

3.1.3 配置文件中的计量单位38

3.1.4 配置文件中的哈希表39

3.2Nginx的进程核心配置指令39

3.2.1 进程管理39

3.2.2 进程调优40

3.2.3 进程调试44

3.2.4 事件处理45

3.2.5 核心指令配置样例48

3.3HTTP核心配置指令48

3.3.1 初始化服务49

3.3.2HTTP请求处理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.9HTTP核心配置样例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.2referer请求头控制模块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.5gzip压缩126

 

●第5章 Nginx Web服务应用实战130

5.1 静态文件服务器的搭建130

5.1.1 静态Web服务器130

5.1.2 文件下载服务器131

5.1.3 伪动态SSI服务器132

5.2HTTPS安全服务器的搭建137

5.2.1 配置指令137

5.2.2HTTPS基本配置139

5.2.3HTTPS密钥交换算法141

5.2.4HTTPS会话缓存142

5.2.5HTTPS双向认证配置143

5.2.6HTTPS吊销证书配置144

5.2.7HTTPS配置样例145

5.3PHP网站搭建146

5.3.1FastCGI模块指令146

5.3.2PHP环境安装150

5.3.3PHP网站配置样例151

5.3.4FastCGI集群负载及缓存152

5.4Python网站的搭建154

5.4.1CGI、FastCGI、SCGI、WSGI154

5.4.2uWSGI模块指令155

5.4.3Python网站的搭建159

5.5XSLT转换服务器162

5.5.1 模块配置指令162

5.5.2XSLT服务器配置样例162

5.6 伪流媒体服务器的搭建164

5.6.1 模块配置指令165

5.6.2 伪流媒体配置样例165

5.7HTTP增强协议服务器的搭建168

5.7.1HTTP/2协议服务168

5.7.2WebDAV协议服务169

 

●第6章 Nginx代理服务应用实战173

6.1HTTP代理173

6.1.1 模块指令173

6.1.2 正向代理177

6.1.3HTTP的反向代理179

6.1.4HTTPS的反向代理181

6.1.5 反向代理的真实客户端IP184

6.2TCP/UDP代理185

6.2.1stream核心模块185

6.2.2stream辅助模块187

6.2.3TCP/UDP代理194

6.2.4 基于SSL的TCP代理197

6.2.5TCP/UDP代理的真实客户端IP199

6.3gRPC代理202

6.3.1gRPC介绍202

6.3.2gRPC模块指令202

6.3.3gRPC反向代理配置204

 

●第7章 Nginx缓存服务应用实战206

7.1Web缓存206

7.1.1 客户端缓存207

7.1.2 正向代理缓存211

7.1.3 内容分发网络211

7.1.4 反向代理缓存212

7.2Nginx缓存模块213

7.2.1 代理缓存模块213

7.2.2Memcached缓存模块218

7.3Nginx缓存应用219

7.3.1 代理缓存服务器219

7.3.2 镜像缓存应用221

7.3.3Memcached缓存应用223

7.3.4 客户端缓存控制226

7.4 缓存服务的管理与维护227

7.4.1 模块编译228

7.4.2 模块指令228

 

●第8章 Nginx负载均衡应用实战231

8.1Nginx负载均衡模块231

8.1.1 服务器配置指令232

8.1.2 负载均衡策略指令234

8.2 负载均衡策略236

8.2.1 轮询236

8.2.2 一致性哈希237

8.2.3IP哈希239

8.2.4 最少连接240

8.2.5 随机负载算法241

8.3 负载均衡配置242

8.3.1 负载均衡的长连接242

8.3.2upstream的容错机制245

8.3.3 动态更新upstream248

8.3.4HTTP负载均衡配置253

8.3.5FastCGI负载均衡配置253

8.3.6uWSGI负载均衡配置254

8.3.7gRPC负载均衡配置254

8.3.8Memcached负载均衡配置255

8.4TCP/UDP负载均衡255

8.4.1TCP/UDP负载均衡255

8.4.2TCP/UDP负载均衡的容错机制257

 

●第9章 Nginx日志管理259

9.1Nginx日志配置259

9.1.1 访问日志259

9.1.2 错误日志263

9.1.3 日志归档Logrotate264

9.1.4 日志输出到syslog268

9.2Nginx日志收集分析269

9.2.1ELK简介269

9.2.2ELK安装271

9.2.3Nginx日志分析276

 

●第10章 Nginx监控配置及管理278

10.1Nginx连接状态监控278

10.1.1Nginx连接状态278

10.1.2Nginx连接状态模块指令280

10.1.3 基于Zabbix的连接状态监控280

10.2HTTP主机状态监控282

10.2.1 模块编译282

10.2.2 模块配置指令282

10.2.3 主机状态监控配置286

10.3TCP/UDP主机状态监控287

10.3.1 模块编译287

10.3.2 模块配置指令287

10.3.3TCP/UDP主机状态监控配置290

10.4 监控工具Prometheus291

10.4.1Prometheus简介291

10.4.2Prometheus部署292

10.4.3 监控HTTP主机状态296

10.4.4 监控TCP/UDP主机状态299

10.4.5Prometheus监控告警302

10.5 监控工具Zabbix304

10.5.1Zabbix简介305

10.5.2Zabbix环境搭建306

10.5.3Zabbix Agent安装310

10.5.4Zabbix获取Prometheus数据311

 

●第11章 Nginx集群负载与配置管理314

11.1Nginx集群负载315

11.1.1 多层负载均衡架构315

11.1.2LVS简介315

11.1.3Keepalived简介320

11.1.4Nginx集群负载搭建327

11.2Nginx集群配置管理331

11.2.1Nginx集群配置管理规划331

11.2.2 配置归档工具GitLab335

11.2.3 配置修改工具Ansible336

11.2.4 配置发布工具Jenkins338

11.2.5Nginx配置管理实例340

 

●第12章 Nginx在Kubernetes中的应用351

12.1Kubernetes简介352

12.1.1Kubernetes架构简述352

12.1.2Kubernetes相关术语353

12.1.3Kubernetes集群部署360

12.1.4Kubernetes网络通信366

12.2Nginx Ingress375

12.2.1Nginx Ingress原理375

12.2.2 集成的第三方模块376

12.2.3 安装部署378

12.2.4 日志管理383

12.2.5 监控管理384

12.3Nginx 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.1Nginx产品组件419

13.2.2 开源微服务网关Kong419

13.2.3 安装部署423

13.2.4 微服务网关应用427

上下滑动查看

更多精彩回顾

书讯 |华章计算机拍了拍你,并送来了8月书单(下)

书讯 | 华章计算机拍了拍你,并送来了8月书单(上)

上新 | 三个男人一台戏,为云原生应用和OpenShift写了一本书
书单 | 《天才引导的历程》| 西安交通大学送给准大一新生的礼物

干货 | 机器人干活,我坐一边喝茶——聊聊最近爆火的RPA

收藏 | 揭秘阿里巴巴的客群画像

点击阅读原文购买

相关文章:

  • 开学季——计算机专业学生必读的10本畅销经典
  • 9月书讯(下)| 开学季,读新书
  • 交互设计是什么?
  • 开学季——想打好数学基础?这些经典教材你最需要!
  • Java 二十五载,正在 Kotlin 化!
  • 开学季 | 用十本书打破固有思维,“文理兼修”
  • 云安全调查:过去一年半80%的企业遭受云数据泄露
  • DB-Engines 9月数据库排名:ClickHouse一路猛冲,Redis坐稳第七
  • 跨平台桌面开发王器Electron:安装过程深入解析
  • 机器喵大作战 | 解剖人工智能、机器学习和深度学习
  • 【第20期】实践深度学习?先接住这三板斧再说
  • 万字长文的Redis五种数据结构详解(理论+实战)| 建议收藏
  • 学习就像一场旅行,12天带你玩转Flutter之旅
  • 漫谈“数据仓库演进史”
  • “设计”拍了拍“产品、技术、运营、管理”:求你看看《用户体验要素》
  • bootstrap创建登录注册页面
  • Git初体验
  • Java比较器对数组,集合排序
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • mockjs让前端开发独立于后端
  • Object.assign方法不能实现深复制
  • php ci框架整合银盛支付
  • python 装饰器(一)
  • 阿里云购买磁盘后挂载
  • 分类模型——Logistics Regression
  • 理解在java “”i=i++;”所发生的事情
  • 如何编写一个可升级的智能合约
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 探索 JS 中的模块化
  • 想写好前端,先练好内功
  • 消息队列系列二(IOT中消息队列的应用)
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 源码安装memcached和php memcache扩展
  • 怎么将电脑中的声音录制成WAV格式
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #Linux(Source Insight安装及工程建立)
  • #NOIP 2014#Day.2 T3 解方程
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (4)Elastix图像配准:3D图像
  • (Java数据结构)ArrayList
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (九十四)函数和二维数组
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET 反射的使用
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • @GetMapping和@RequestMapping的区别
  • @RequestParam,@RequestBody和@PathVariable 区别
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • [16/N]论得趣
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • [BZOJ 1040] 骑士
  • [codevs 1296] 营业额统计