Nginx在分布式架构中发挥着举足轻重的作用。作为高性能的HTTP和反向代理服务器,它有效分流并处理请求,提升系统整体吞吐量和响应速度。同时,Nginx的负载均衡功能确保了资源的合理分配,提高了系统的稳定性和可靠性,是构建高效分布式系统的关键组件。
1
常用的Web服务器介绍

1、Web服务器介绍
Web服务器分为静态服务器和动态服务器,静态服务器就是处理静态资源的,比如html,CSS,js,常用的有Apache、Nginx;动态服务器就是处理动态请求的,比如jsp,servlet等,常用的有Tomcat,Weblogic。
Nginx是一个高性能的Http服务器和反向代理服务器,能够支持5万个并发连接,内存,CPU消耗非常低,是基于七层协议的服务。
2、反向代理介绍
我们平时说的代理指的是代理客户端,这个是正向代理,反向代理指的是代理服务端。
我们作为用户想访问一个服务资源URL,如果我们的浏览器直接打不开这个URL,一般会通过vpn或者其他代理服务器中转,这种情况下的代理就是正向代理,也就是我们通常说的代理的意思。
而反向代理是指,作为服务资源提供方,内部有很多服务器,这些服务器不能全部暴露给第三方用户,因此需要在内部服务器的前面加一个代理服务器,用户访问的是代理服务的IP,而不知道具体访问的是服务端的哪台机器,这种情况就是反向代理,指的是代理服务端。
反向代理是一种网络架构模式,它充当客户端与目标服务器之间的中介。通过接收客户端请求,并将其转发至后端服务器,再将响应返回给客户端,反向代理实现了请求的分发与管理。它不仅能提高系统的安全性和访问速度,还能有效实现负载均衡,优化用户体验。同时,反向代理还具备缓存、压缩等功能,进一步提升了系统性能。在分布式系统中,反向代理发挥着至关重要的作用。
2
Nginx在分布式架构中的作用

1、分布式架构的演进
阶段一:一个网站的初期,访问的流量比较小,选用的架构可能就是用户通过域名访问,经过域名解析(DNS服务器),拿到后端服务器的IP地址,直接访问到这个IP所对应的Tomcat服务器,这是最简单的一个网站架构。
阶段二:随着用户流量的增大,一台Tomcat服务器无法满足用户的请求,因此人们会想到2个办法:
1.升级这台服务器更换更强大的硬件,这就是垂直扩展;
2.增加新的服务器来分担前端流量,这就是水平扩展;
垂直扩展的方式就是对一台服务器不断加强硬件,但是服务器的可扩展内存会有上限,总会达到瓶颈,而且成本比较高,因此人们一般会选择水平扩展。一台不够再加一台,不行再加一台......
阶段三:为了应对流量的增加,不断地增加后端服务器的数量,那么服务器的IP会越来越多,通过DNS服务器管理这些服务器IP带来了新的问题:
1.后端的某台机器宕机后,DNS服务器不知道该机器宕机,仍然解析到了这个IP,如果用户访问到了这个宕机的IP,那么系统无法为用户提供服务。
2.DNS服务器配置新的IP后,它不会立即生效,那么在它生效的这个时间段,新加的服务器不会为用户提供服务。
反向代理和负载均衡服务器可以很好地解决上面的问题。
阶段四:用了反向代理服务器后,网站的架构就进一步演进,变成了用户通过域名访问,DNS服务器返回反向代理服务器的IP,反向代理服务器根据被代理服务器的IP配置和负载均衡的策略转发用户的请求到不同的后端服务器,后端服务器返回响应结果到反向代理服务器,反向代理服务器返回结果给用户。
反向代理服务器因为只转发用户的请求而不做具体处理,因此它的性能比应用服务器强大。
阶段五:随着流量的继续增大,单台反向代理服务器成为了瓶颈,我们就会对其做集群,解决高性能的问题,对其做主备解决高可用的问题。
以上,就是一个网站的分布式架构的演进过程。
2、Nginx在分布式架构的作用
通过上面的架构演进介绍,我们知道分布式架构中最重要的思路就是水平扩展,水平扩展最重要的一个环节就是反向代理和负载均衡。
Nginx就是一个高性能的反向代理和负载均衡服务器,它可以支持5万的并发访问,同时它可以做动静分离,可以解决跨域访问和防盗链的问题。
Nginx在分布式架构中扮演核心角色,作为高性能的反向代理和负载均衡器,有效管理用户请求,分发至后端服务器,提升系统吞吐量和响应速度。同时,其强大的缓存和压缩功能进一步优化系统性能,确保分布式架构的稳定、高效运行。
3
Nginx的下载安装与使用

1、Nginx的下载与安装
要了解一个软件或者学习一个技术,第一步就是安装,只有安装好了,我们才可以对其进行练习和使用,最终达到掌握的目的。
Nginx是一个开源的软件,我们可以从官网上下载其最新的版本进行安装和使用。
Nginx的下载:
官网:http://nginx.org/en/download.html
我们下载nginx-1.14.1版本,下载的是Nginx的源码,C语言写的。

Nginx的安装过程
源码的安装一般有三个步骤:配置(configure)、编译(make)、安装(make install)
在centos7的虚拟机根目录下建立/data/program的文件夹,用来存放应用程序文件
把下载的nginx-1.14.1.tar.gz文件上传到/data/program的文件夹下
解压nginx-1.14.1.tar.gz文件
tar -zxvf nginx-1.14.1.tar.gz在/data/program目录下创建nginx文件夹把Nginx软件安装到该目录下,便于管理
对nginx进行安装前的配置检查
./configure --prefix=/data/program/nginx在配置检查这一步,可能会遇到一些缺少依赖库的问题,按照提示用yum命令进行安装即可
依赖安装后,再一次执行命令对Nginx进行安装前的配置检查,不通过则继续yum安装依赖,直到配置检查通过
1、找不到c编译器:yum -y install gcc
2、找不到PCRE library:yum -y install pcre-devel
3、找不到zlib包:yum -y install zlib-devel配置好之后,进行编译和安装
make && make install进入nginx目录下,出现conf,html,logs,sbin目录,则说明安装完成。
[root@base-1 nginx]# ls
conf html logs sbin
[root@base-1 nginx]#
2、Nginx的使用
Nginx的启动
到/data/program/nginx/sbin目录下执行./nginx
[root@base-1 sbin]# pwd
data/program/nginx/sbin
[root@base-1 sbin]# ls
nginx
[root@base-1 sbin]# ./nginx
查看效果:
启动后,访问nginx,浏览器输入:http://192.168.1.8
如果访问不到,说明防火墙的问题
临时关闭防火墙:systemctl stop firewalld
防火墙禁止开机启动:systemctl disable firewalld

访问到上图的界面,说明Nginx已经生效。
Nginx的停止
到/data/program/nginx/sbin目录下执行./nginx -s stop
[root@base-1 sbin]# ./nginx -s stop





