开篇闲谈:
在互联网与我们生活已密不可分的今天,大规模、高性能的网站架构技术已成为每个互联网技术人员的必备技能。Nginx作为款开源的Web服务器软件,因其具有性能稳定、高并发、低内存耗用、高性能的处理能力等特点,而被广泛应用到国内外各互联网厂商的实际生产架构中。由于互联网技术迭代非常快,云计算、微服务等新技术层出不穷,Nginx也一 直 处于活跃开发的状态,并在新版本中增加了 很多强大的功能,与这些新技术紧密集成。同时基于其开源版本衍生出来的OpenResty和淘宝的Tengine等软件也根据自身需求提供了优秀的扩展功能,满足了云计算、微服务等各种技术的应用需求,并在实际生产环境中得到了广泛应用。
作为一款Web服务器软件,Nginx实现了Web服务器的基本功能,用户通过简单的配置指令就可以快速完成Web服务器的搭建。它还是网络通信协议处理软件,支持TCP/UDP、 HTTP、HTTP/2、gRPC、 FastCGI、SCGI、uWSGI、 WebDAV等协议的处理,并实现了相应通信协议的请求解析、长连接、代理转发、负载均衡、会话保持等互联网架构中常见的应用功能。同时,它还是一款高并发服务软件,其采用的固定数量的多进程模型、事件驱动处理机制、工作流处理方式及模块化架构等软件开发设计,已成为高并发服务软件开发的典范。
Nginx自诞生至今已有十几年时间,虽然相关资料很多,但国内可获得的资料很多是直接翻译自官方文档,这些资料让读者只是停留在知其然而不知其所以然的层面,即便有深入讲解某一功能的资料, 也仅能让读者管中窥豹,而无法全面了解Nginx的功能并在实际工作中熟练应用。市面上的图书或偏重于Nginx服务器的搭建,或偏重于Nginx的源码解析,同时Nginx的新版本及云计算、微服务等新技术迭代较快,这就导致市面上介绍Nginx最新技术实际应用及运维管理的资料稀少。而Nginx的用户只有理解了Nginx的各项指令参数的功用,才能熟练对Nginx的各种功能进行灵活组合,以使其发挥最高的性能,进而在实际工作中解决各种问题。
鉴于以上原因,今天小编给大家推荐一本资深运维专家10余年经验总结,从应用、运维以及与Kubernetes和微服务集成3个维度帮你深入理解Nginx运维实战的书籍,分别从Nginx介绍、应用实战、运维管理及与Kubernetes和微服务的应用集成4个部分来介绍Nginx的特点及运维管理实战经验,力求给从事互联网技术工作的读者带来帮助
通过阅读本书,你将:
●熟练掌握Nginx的配置指令使用方法
●了解Nginx作为Web服务的应用实现
●了解Nginx对相关通信协议的处理方法
●熟悉Nginx作为代理、缓存、负载均衡的应用实现
●提升Nginx日常运维管理中的日志和监控管理能力
●了解Nginx集群的搭建与配置管理方法
●了解Nginx在Kubernetes和微服务架构中的应用实现
●掌握软件的Docker化部署方法
目录:
![](https://i-blog.csdnimg.cn/blog_migrate/3d583ee1c97219e9cd119d5912a6c1c1.png)
![](https://i-blog.csdnimg.cn/blog_migrate/90e91f176530b9bb0e79fd4b08bf4640.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f87d18879153739b9af86c8960590cc5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ca1071492f525e8b3b0fa9532c04d4f1.png)
由于文章篇幅限制,只能在这里给大家展示目录及部分内容
第一部分Nginx介绍 (第1~4章)
第1章Nginx概述
Nginx的第一个版本发 布于2004年,经过多年的发展,逐渐演变出Nginx、Nginx Plus、Tengine、 OpenResty这4个被广泛应用的版本。本章分别介绍了这4个版本各自的特点,并通过对开源Ng inx架构的特点及实现原理的介绍,使读者对Ngi nx的功能有初步的了解。
![](https://i-blog.csdnimg.cn/blog_migrate/32c966c84678f8cd81c718d9dcdc71cf.png)
第2章Nginx编译及部署
Nginx是用C语言开发的,需要通过对源代码进行编译才能获得可运行的二进制文件。本章介绍了Ngi nx开源版本的编译配置参数及Tengine、OpenResty两个版本的扩展编译配置参数和所集成的模块,同时介绍了各个开源版本的编译和基于Docker的编译部署方法。
![](https://i-blog.csdnimg.cn/blog_migrate/4e50934cfd5ef7c1c84b9e151ee4218f.png)
第3章Nginx核心配置指令
Nginx的配置是通过在配置文件中调整不同配置指令的指令值实现的。本章介绍了Ngi nx配置文件的目录结构及主配置文件nginx. conf的文件结构,并对Ngi nx的进程及HTTP核心配置的配置指令进行了介绍和配置举例。
![](https://i-blog.csdnimg.cn/blog_migrate/49b966b952c75ffc1530055f214841a0.png)
第4章Nginx HTTP模块详解
Nginx的HTTP模块配置指令主要负责HTTP请求处理的配置。本章介绍了Nginx在动态赋值、访问控制、数据处理这3个方面的配置指令和配置举例。
![](https://i-blog.csdnimg.cn/blog_migrate/cf292aee9e6a61f398d445b79ed9e132.png)
第二部分应用实战(第5~8章)
第5章Nginx Web服务应用实战
Nginx的一个基本功能是作为Web服务器提供HTTP服务,它支持对静态页面、动态脚本页面、多媒体等文件的响应和处理。本章通过静态文件服务器、HTTPS安全服务器、PHP网站搭建、Python网站搭建等实战案例,介绍了Nginx作为Web服务的应用实战。
![](https://i-blog.csdnimg.cn/blog_migrate/a37ed1b412e8668b0f47aadd6b68b738.png)
第6章Nginx代理服务应用实战
Nginx支持HTTP、TCP、gRPC等多种协议的代理,通过上述代理功能,后端服务器可实现更灵活安全的部署。本章通过实战案例介绍了Nginx代理相关配置指令的使用方法及需要关注的客户端源IP问题的解决方案。
![](https://i-blog.csdnimg.cn/blog_migrate/e438366d4d72377d68ef55faa460c0a5.png)
第7章Nginx缓存服务应用实战
内容缓存是加速用户访问的常用技术。本章介绍了Nginx缓存模块的配置指令,并通过客户端缓存、代理缓存、镜像缓存及Memcached集成等应用场景配置案例,介绍了Nginx作为缓存服务器的应用实战。
![](https://i-blog.csdnimg.cn/blog_migrate/e8e8b620df290af057969dc99e8b0dc7.png)
第8章Nginx负载均衡应用实战
Nginx通过上游模块与代理模块共同实现了对后端服务器的访问负载功能,Nginx支持HTTP、TCP/UDP、gRPC、 FastCGI、 uWSGI、SCGI、Memcached等协议的反向代理。本章详细介绍了Nginx负载均衡相关的配置指令和官方自带的负载均衡算法及实现原理。
![](https://i-blog.csdnimg.cn/blog_migrate/49b07bc002cd5fd591e40fbf20219f4a.png)
第三部分运维管理(第9~11章)
第9章Nginx日志管理
Nginx的日志分为访问日志和错误日志两种。日志的收集和分析是日常运维工作的重要内容,日志不仅可以帮助运维工程师排查Nginx的问题及优化Nginx的性能,还可以通过与ELK集成为其代理的网站应用提供安全、性能、可用性及运行的PV/UV等方面的数据,通过对这些数据进行不同维度的分析,可以了解如何提升网站应用的运维能力。
![](https://i-blog.csdnimg.cn/blog_migrate/be7f751f9ab3a0c57468765037f996e1.png)
第10章Nginx 监控配置及管理
在Nginx的日常运维管理工作中,Nginx的监控管理是一项重要的工作,但开源版本Nginx自带的监控数据采集能力相对较弱。本章介绍了开源Nginx与第三方模块集成的方法,这些方法增强了Nginx的监控数据采集能力。本章还介绍了目前流行的监控工具Prometheus对Nginx服务器的监控、告警方法。另外还举例介绍了监控工具Zabbix获取Prometheus Exporter数据,以便在运维管理工作中实现统一化监控管理的方法。
![](https://i-blog.csdnimg.cn/blog_migrate/c9020430e42faf0542b3e59e0d916b8a.png)
第11章Nginx集群负载与配置管理
高业务量的互联网应用架构中,通常都是通过多组Nginx集群实现后端不同应用服务集群负载均衡的,本章介绍了基于Keepalived的Nginx集群的多层负载架构搭建,并举例介绍了通过现有的开源软件Jenkins、GitLab和Ansible组合,快速搭建一套Web化的Nginx集 群配置管理框架的方法。
![](https://i-blog.csdnimg.cn/blog_migrate/1b3dce1f81e0794b950d39f669e4a6e5.png)
第四部分Nginx 与Kubernetes、微服务的应用集成(第12~13章)
第12章Nginx在Kubernetes中的应用
Kubernetes是Google开源的分布式容器管理系统,它实现了对容器的部署、网络管理、负载调度、节点集群和资源的扩缩容等自动化管理功能。在该服务对外发布的方案中,Nginx 以Nginx Ingress组件的方式为Kubernetes集群的Pod应用提供了访问控制、认证管理、应用层代理、负载均衡等功能,使Kubernetes对集群中运行于容器的应用程序具有更灵活的应用层,以提供对外访问的管理能力。本章介绍了Kubernetes的相关术语及网络通信机制,读者可通过相关网络通信机制根据实际需求选择NginxIngress的部署方式,并通过本章介绍的配置映射和注解这两种不同的配置方式实现日常Nginx Ingress的配置管理工作。
第13章Nginx在微服务架构中的应用
近几年,微服务架构技术发展迅猛,已成为目前主流的应用架构技术。在微服务架构中,Nginx也在微服务网关等微服务的核心组件中发挥着重要的作用。本章从软件发展历史的角度介绍了对微服务架构的认识,并举例介绍了基于OpenResty的开源微服务网关软件Kong作为微服务网关的应用配置方法。
![](https://i-blog.csdnimg.cn/blog_migrate/3e70fa21d21cbe772e57da3812d94075.png)
适读人群 :本书目标群体为具有一定Linux基础的互联网行业运维人员,由于Nginx的功能涉及WEB服务、负载均衡等、微服务等多方面的应用,所以本书适合web开发、架构开发作为参考
(1)作者是资深运维专家,在国内知名互联网公司有十余年运维和架构经验。
(2)从应用、运维及与Kubernetes和微服务集成3维度讲解Nginx基础知识、工作原理、核心应用、运维管理、集成扩展
(3)以实战为导向,包含大量配置案例和示例代码。
(4)基于Nginx新版本和云原生应用场景。