单机到集群分布式架构来看Nginx充当的角色光(组图)

什么是 Nginx 服务器

是一位俄罗斯人开发了基于事件驱动架构的高性能 Web 和反向代理服务器,使其能够支持数百万个 TCP 连接。在连接并发高的情况下,Nginx 是服务器的一个很好的替代方案;

免费 + 开源 + 高性能 + 活跃的社区使 Nginx 成为世界上使用最多的服务器之一。

目前,阿里、腾讯、百度等在市场上位居全球反向代理服务器之列。据统计,全球每三个网站就有一个使用 Nginx,Nginx 用途很多,比如反向代理服务器、文件服务器、静态资源服务器、业务网关,支持多种协议 https、POP3 等c语言实现web服务器,功能强大且高性能——支持单机千万级连接,强大的第三方库支持c语言实现web服务器,加上大量的第三方模块,让Nginx一举成为服务器的佼佼者。

单机转集群分布式架构看Nginx的作用

就这么说吧,大家一定不明白为什么要用Nginx吧,那么我们就从“远古时代”的系统演进来说说Nginx能帮我们解决的问题吧。

基本上每个人的学习系统都是从一个单一的节点来解释的,比如我们学校学的学生管理系统,或者是一个小型电商系统的开发。这是一个独立的应用程序。这个请求的链接是向前端请求后端接口,然后通过后端读取数据库,通过页面显示对应的数据。

图片[1]-单机到集群分布式架构来看Nginx充当的角色光(组图)-4747i站长资讯

我们的后端应用程序就像一个电子商务系统。包含的功能模块有用户模块、订单模块、商品模块、库存模块等。

我们的后端应用程序部署在一台机器上。如果这台机器挂了,那么我们的电子商务系统就会挂掉,用户将无法请求我们的数据。

为了避免单点故障,如果一台机器出现故障,我们会部署更多这样的机器。可以避免由于某台机器故障导致整个系统不可用。

比如你去银行取款,只有一个手动窗口,对应的服务人员因急事没有来。每个人都在排队。如果您可以打开更多这些相同的窗口,则可以避免此问题。我们把同一个应用部署到多台机器上,同时对外提供服务的方式叫做“集群”;

集群可以解决很多问题,比如避免单点故障,解压和分流对应的服务器等。

类似于以下部署多台机器的后端应用程序,这是一个集群。但是在这种情况下也有一个问题,每个应用程序都有自己唯一的 ip,用户应该向我们请求哪台机器?

图片[2]-单机到集群分布式架构来看Nginx充当的角色光(组图)-4747i站长资讯

后端选择了哪个节点,选择的策略是什么?如果某个节点宕机了,用户能否及时感知,然后请求不分配给这个应用?你可以想象。如果你在设计这样一个中间件,你会怎么设计呢?在Nginx没有出来之前,这个可以被前端周期性的轮询,比如一个请求IP1,一个请求IP2轮流切换。

这个没问题,但是如果你有很多后端业务,是否需要每次都为这个业务制定这样的轮询策略?一个简单的轮询策略是不够的。有些请求在某个节点排序很慢,有些请求在某个节点处理得很快。这种情况下,很容易造成请求分布不均。

像这样的词叫做负载均衡策略。可以是轮询的,也可以根据IP固定分配给某个后端节点,也可以根据请求的最短响应时间动态分配,也可以根据请求的权重分配应用。.

这种负载均衡策略与我们安装后的应用程序无关。例如,您的后端应用程序可以是电子商务系统、在线教育平台或管理系统。

如果我们可以将这种负载均衡选择策略作为一个单独的中间件使用,那么每个系统都可以直接复用,这样就不需要每次都进行前端开发了。

图片[3]-单机到集群分布式架构来看Nginx充当的角色光(组图)-4747i站长资讯

Nginx 似乎解决了我们刚才所说的这些问题。负载均衡只是它的应用之一,它还有很多更强大的应用。

前端的请求已经来到了我们的 Nginx。Nginx会根据相应的负载均衡策略选择我们后端应用的一个节点,转发请求。在这种情况下,我们称其为反向代理。

什么是正向代理服务器和反向代理服务器

关于什么是正向代理服务器和反向代理服务器,很多人对此有点疑惑。

那么我们来说说什么是正向代理服务器,什么是反向代理服务器,以及对应的应用场景,以便大家掌握

这也是一个很常见的面试问题,面试官会问,能不能解释一下什么是正向代理服务器,什么是反向代理服务器。

转发代理服务器

图片[4]-单机到集群分布式架构来看Nginx充当的角色光(组图)-4747i站长资讯

反向代理服务器(Nginx)

正向代理好理解,反向代理比较难理解;

那我就举个生活中的例子,比如说我们要租房子。我们不知道房源在哪里,房地产经纪人也知道。所以我们去租房子的时候,需要请他通过中介帮我们找到对应的房子。那么中介不会给我们相应房屋的业主信息,我们必须通过他。例如,当你去看房子时,中介会联系相应的业主。有些业主很忙,他不能带我们看房子。有些业主可以,他可以带我们看房子。在这种情况下,它相当于房地产中介。他是负载均衡和反向代理的角色。他可以选择哪栋房子满足我们的需求,并且可以自由地为相应的业主与我们签订合同。

图片[5]-单机到集群分布式架构来看Nginx充当的角色光(组图)-4747i站长资讯

文章来源:http://www.toutiao.com/a7005864069341200928/

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享