正/反向代理和服务器端/客户端负载均衡
Posted dengyu的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正/反向代理和服务器端/客户端负载均衡相关的知识,希望对你有一定的参考价值。
正向代理和反向代理
正向代理,就是这个相当于是在用户侧的一个跳板。打个比方,如果我想访问国外一个网站,正常来说它可能被墙了。但是我们可以使用一些翻墙软件,这个翻墙软件就相当于一个代理,连接好了代理服务器之后,我们才能访问到我们需要的网站。正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。 这时候其实用户是感觉到了自己使用了代理翻墙。
反向代理,这个和正向代理相反,它是位于服务器端的,用户是无法感知的。对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理 的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。
正向代理和反向代理的区别
从用途上来讲:
正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性减少网络使用率。反向代理的典型用途是将 防火墙后面的服务器提供给Internet用户访问。反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。另外,反向代理还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。
从安全性来讲:
正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。
服务器端负载均衡和客户端负载均衡
轮询法(Round Robin)
轮询法是指负载均衡服务器(Load Balancer)将客户端请求按顺序轮流分配到后端服务器上,以达到负载均衡的目的加权轮询法(Weighted Round Robin)
简单的轮询法并不考虑后端机器的性能和负载差异。给性能高、负载低的机器配置较高的权重,让其处理较多的请求;而性能低、负载高的机器,配置较低的权重,让其处理较少的请求。加权轮询法可以很好地处理这一问题,它将请求顺序且按照权重分派到后端服务器。最小连接数法(Least Connections)
最小连接数法根据后端服务器当前的连接数情况,动态地选取其中积压连接数最小的一台服务器来处理当前的请求,尽可能提高后端服务器的利用效率,合理地将请求分流到每一台服务器。随机法(Random)
随机法也很简单,就是随机选择一台后端服务器进行请求的处理。由于每次服务器被挑中的概率都一样,客户端的请求可以被均匀地分派到所有的后端服务器上。
参考资料
1 特种兵-AK47 正向代理与反向代理的区别 https://blog.csdn.net/m13666368773/article/details/8060481
2 Leo的博客 负载均衡算法 https://blog.csdn.net/lihao21/article/details/54695471
以上是关于正/反向代理和服务器端/客户端负载均衡的主要内容,如果未能解决你的问题,请参考以下文章
nginx做反向代理负载均衡 Java怎么获取后端服务器获取用户IP