[大带宽]Nginx的作用详解,为什么在Web服务器中Nginx的比例越来越高?

来源: 作者: 发布时间:2022-01-10 10:19:01

Nginx的产生

我没听说过Nginx,所以我一定听说过它的“同行”Aache!Nginx和Apache一样,都是WE服务器。基于REST架构风格,以统一的方式听Uenturcise服务或Ifturcise服务。

然而,这些服务器在设计之初受到当时环境的限制,如用户规模、网络带宽、产品特性等,其定位和开发各不相同。这也使得每个网络服务器都有自己独特的特点。

Apache已经发展了很长一段时间,是世界上最大的无可争议的服务器。它有许多优点:稳定性、开源性、跨平台等。它出现的时间太长了,互联网行业的兴起远低于现在。所以它被设计成一个重量级的。它不支持高并发服务器。在Apache上运行数万次并发访问将导致服务器消耗大量内存。操作系统在过程或线程之间切换也消耗了大量的CPU资源,降低了HTTP请求的平均响应速度。

这些都决定了Apache不可能成为高性能WEB服务器,轻量级高并发服务器Nginx应运而生。

俄罗斯的Ngorgbsv,他在使用工作eroec语言Mdia时开发了Nginx。作为WemblerNginx一直为Ramblere和Edia提供优秀稳定的服务。

二、

由于:

基于事件驱动架构,Nginx可以支持数百万TCP连接,高度模块化和自由软件许可证是第三个模块源源不断地涌现(这是一个开源时代ginx是一个跨平台服务器,可以在Linux、Windows、FreBSDS、Soix、So方la操作系统上运行,使其极大稳定

所以,Nginx着火了!

用武之地Nginx

Nginx是一款自由、开源、高性能的HTTP服务器和反向代理服务器;也是IMAP、POP3、SMTP代理服务器;Nginx可以作为HTTP服务器发布网站,Nginx可以作为负载平衡的反向代理。

关于代理

说到代理,首先要明确一个概念,所谓代理就是代表和渠道;

此时,设计了两个角色,一个是代理角色,另一个是目标角色,代理角色通过代理访问目标角色完成一些任务的过程称为代理操作过程;就像生活商店~客人去商店买一双鞋,商店是代理,代理角色是商店制造商,目标角色是用户。

正向代理

在谈论反向代理之前,让我们先看看积极代理。积极代理也是最常见的代理模式。我们将从软件和生活两个方面解释积极代理的处理模式。

在当今的网络环境下,如果我们因为技术需要访问一些外国网站,你会发现我们无法通过浏览器访问外国网站。此时,每个人都可能使用操作FQ进行访问。FQ的主要方法是找到一个可以访问外国网站的代理服务器,我们将要求发送给代理服务器,代理服务器访问外国网站,然后将访问数据传输给我们!

上述代理模式称为正代理。正代理最大的特点是客户端非常清楚要访问的服务器地址;服务器只知道要求哪个代理服务器,而不知道来自哪个特定的客户端;正代理模式屏蔽或隐藏真实客户端信息。看一个示意图(我把客户端和正代理框放在一起,属于同一个环境,我稍后介绍):

Nginx的作用详解,为什么在web服务器中nginx的比例越来越高?

客户端必须设置正代理服务器,前提是知道正代理服务器的IP地址和代理程序的端口。如图所示。

Nginx的作用详解,为什么在web服务器中nginx的比例越来越高?

综上所述:积极代理,“其代理是客户端”,是位于客户端原始服务器之间的服务器始服务器获取内容,客户端发送请求并指定目标(原始服务器),然后代理将请求转移到原始服务器,并将获得的内容返回给客户端。客户端必须进行一些特殊的设置才能使用积极的代理。

正代理的用途:

访问Googl无法访问的原始资源,如Google,可以存储加速访问资源,授予客户授权,在互联网上验证,缓慢访问,记录用户访问记录(在线行为管理),隐藏用户信息

反向代理

了解什么是积极代理,我们继续看反向代理的处理,例如,我的宝藏网站,每天同时连接到网站访问者已经爆炸,单个服务器远远不能满足人们日益增长的购买欲望,此时出现了一个熟悉的术语:分布式部署;

也就是说,通过部署多个服务器来解决访问者数量限制的问题;一个宝藏网站的大部分功能也直接使用Nginx进行反向代理,并通过包装Nginx和其他组件来命名:Tengine。

感兴趣的童鞋可以访问tengine的官网查看具体信息:http://tengine.taobao.org/。那么反向代理是如何实现分布式集群操作的呢?我们先看一个示意图(我把服务器和反向代理框在一起,属于同一个环境,后面介绍):

Nginx的作用详解,为什么在web服务器中nginx的比例越来越高?

通过以上图片,您可以清楚地看到多个客户端发送给服务器的请求。Nginx服务器收到后,按照一定的规则分发给后端业务处理服务器进行处理。此时,~请求的来源是客户端是明确的,但具体的服务器不清楚,Nginx扮演反向代理角色。

客户端没有感知代理的存在,反向代理是透明的,访问者不知道他们访问的是代理。因为客户端可以访问而不需要任何配置。

反向代理,“它代表服务端”,主要用于服务器集群分布式部署,反向代理隐藏服务器信息。

反向代理的作用:

确保内网内网的安全,反代理通常被用作公公共网络访问地址,We服务器是内部网络的负载平衡,通过反向代理服务优化网站的负载

项目场景

通常,当我们在实际的项目操作中,积极代理和反向代理很可能存在一个应用场景,积极代理客户请求访问目标服务器,目标服务器是一个反向单利润服务器,反向代理多个真正的业务处理服务器。

具体的拓扑图如下:

Nginx的作用详解,为什么在web服务器中nginx的比例越来越高?

二者区别

截图说明正代理和反代理的区别,如图所示。

Nginx的作用详解,为什么在web服务器中nginx的比例越来越高?

图解:

Proxy和Client在积极代理中属于LAN(图中框),隐藏客户端信息;

在反向代理中,Proxy和Server属于LAN(图中框),隐藏服务端信息;

事实上,Proxy在两个代理中所做的是为服务器收发请求和响应,但从结构上看,它只是左右交换,所以后来的代理被称为反向代理。

负载均衡

我们已经明确了所谓的代理服务器的概念,然后Nginx扮演了反向代理服务器的角色,它要求按照什么规则分发?无项目应用场景,分发规则可以控制吗?

这里提到的客户端发送的Nginx反向代理服务器收到的请求数量是我们所说的负载量。按照一定的规则将请求数量分配给不同的服务器处理规则是一种平衡规则。

因此~按规则分配服务器接收到的请求的过程称为负载平衡。

负载均衡在实际项目操作过程中,有硬件负载均衡和软件负载均衡两种,硬件负载均衡也称为硬负载,如F5负载均衡,相对造价昂贵成本较高,但是数据的稳定性安全性等等有非常好的保障,如中国移动中国联通这样的公司才会选择硬负载进行操作;更多的公司考虑到成本原因,会选择使用软件负载均衡,软件负载均衡是利用现有的技术结合主机硬件实现的一种消息队列分发机制。

Nginx的作用详解,为什么在web服务器中nginx的比例越来越高?

Nginx支持的负载均衡调度算法如下:

weight轮询(默认):收到的请求按顺序逐一分配到不同的后端服务器,即使在使用过程中,后端服务器停机,Nginx将自动从队列中删除服务器,请求验收不会受到任何影响。这样,可以为不同的后端服务器设置权重值(weight),以调整不同服务器上要求的分配率;权重数据越大,分配到请求的机会越大;权重值主要调整不同的后端服务器硬件配置。

ip_hash:每个请求匹配发起客户端ip的hash结果。在这种算法下,固定ip地址的客户端总是访问相同的后端服务器,这在一定程度上解决了集群部署环境中session共享的问题。

fair:智能调整调度算法,根据后端服务器的要求动态平衡分配响应时间,响应时间短,处理效率高,响应时间长,处理效率低高,响应时间长、处理效率低的服务器分配的要求少;结合前两者优势的调度算法。但需要注意的是,Nginx默认不支持fair算法。如果您想使用此调度算法,请安装upstream_fair模块。

url_hash:根据访问url的hash结果分配请求。每个请求的url将指向固定在后端的服务器,可以提高Nginx作为静态服务器的缓存效率。还要注意Nginx默认不支持这种调度算法。如果要使用,需要安装Nginx的hash软件包。