Nginx重要概念理解-正向代理和反向代理

        Nginx是有俄罗斯人伊戈尔·赛索耶夫(Igor Sysoev)为俄罗斯访问量第二的rambler.ru站点开发的轻量级Web服务器,同时也是一个非常高效的反向代理、负载平衡服务器。在性能上,Nginx占用很少的系统资源,能支持更多的并发连接,达到更高的访问效率;在功能上,Nginx是优秀的代理服务器和负载均衡服务器;在安装配置上,Nginx安装简单、配置灵活。

本文主要从正向代理,反向代理和负载均衡三个方面简单介绍Nginx的工作原理。

正向代理

正向代理

        正向代理也可以理解为客户端代理,Nginx代替客户端向明确的服务器发送请求,对于服务器来说客户端完全透明。如上图所示,客户机数量的多少不重要,重要的是客户机一定是知道将要访问的是哪台服务器。而且代理服务器是可以不知道客户机要访问哪里的,代理服务器可以从客户机的请求中解析出目标服务器的地址。

       在生活中很多场景都可以形象的展现正向代理的例子。比如客户去某品牌专卖店购物,在客户购买产品这个过程中,专卖店就是个代理的角色。对于客户而言,客户明确指明了购买哪个厂家的具体哪个产品,专卖店需要明确的去这个厂家取货就可以了。上述这样的代理模式称为正向代理。

        在软件应用的场景来说FQ最能体现这个正向代理模式。正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。

反向代理

方向代理

        反向代理也可以理解为服务端代理,Nginx代理服务器为客户端提供服务,对应客户端来说服务端完全透明。如上图所示,服务器数量的多少不重要,重要的代理服务器需要知道所有应用服务器的信息,并且给客户机提供服务的服务器最终是由代理服务器分配实现的。
       在生活中也有很多场景可以形象的展现方向代理的例子。我们以海外代购为例,客户告诉代购人需要某件产品,代购人出国后就去各个店铺挑选客户需要的产品,最终交给客户时客户是完全不知道自己的产品是来自哪家店铺。也就是说在这个过程中对于客户端而言店铺完全透明。这样的代理模式就称为反向代理。

        在软件应用场景来说负载均衡最能体现反向代理模式。反向代理最大的特点是客户端并不知道具体要访问的服务器地址,最终由哪个服务器提供服务有反向代理服务来决定。反向代理模式屏蔽或者隐藏了真实的服务端信息。

负载均衡

        Nginx就是性能非常好的反向代理服务器,用来做负载均衡。什么是负载均衡呢?负载均衡,英文名称为Load Balance,就是原本由一个人来说的工作,分散到了很多人身上,让大家都可以很轻松的完成工作。由于Nginx反向代理服务器转发请求在HTTP协议层面,因此通过Nginx实现的负载均衡也叫应用层负载均衡。优点是部署简单,网络的依赖非常小,并发能力高(5w次,一般服务器也有2K次的并发),通过端口检测到服务器内部的故障,缺点是不支持URL来检测,session的保持和cookie的引导能力欠缺。

总结:当然严格的来说,正向代理和反向代理是通常是融合在一起使用的,互为补充的。我这里算是强行将其概念化只是为了便于理解。

发布了8 篇原创文章 · 获赞 0 · 访问量 122

猜你喜欢

转载自blog.csdn.net/mlydaemon/article/details/103885285