当前位置:C++技术网 > 资讯 > 专业解释反向代理和负载均衡这点事

专业解释反向代理和负载均衡这点事

更新时间:2018-08-10 08:52:00浏览次数:1+次

    在文章《服务器负载均衡的三种模式区别:反向代理、透明传输和三角模式》中,作者用了专业的方式讲述了三个模式的区别。但是看起来还是有点复杂的样子。所以,经过再查资料和反复推敲,用小白也能听懂的方式讲述了反向代理和负载均衡的区别。文章为《小白也能理解的反向代理和负载均衡的区分分析》。
    在看了这个小白理解的文章之后,再来看本文哈。

        我们依然是来解释这三种模式的,不过是从专业点的角度来说的。下图的几个元素说明:A代表用户电脑端,B代表中间服务器端,C代表目标网站服务器端。IP是请求时携带的东西,A -> C 表示这个请求的源IP是A的IP,目标IP是C的IP。借此说明A用户访问的是C网站。不过中间有一个B服务器,也就代表,这个请求是先经过B服务器的。后面类推。

        下面就三种模式进行详细说明:

    1.反向代理

    

        我们先来看看上面这个图。反向代理过程的图示,A访问网站时,比如C++技术网,在浏览器输入网址http://www.cjjjs.com,那么就是直接访问的C++技术网。如果没有开启VPN等软件,也没有使用代理,那么A用户就直接访问了C++技术网,此时没有中间的B服务器,是最常见的访问方式。如果开启了VPN等软件,那么浏览器输入的网址看似直接访问了C++技术网,其实不然。浏览器的请求会被VPN拦截,请求实际被发送到了B服务器,也就是此时的VPN服务器。请求发到B服务器后,B服务器将请求中源IP和目标IP分别切换为B和C,然后将请求发给了C,也就是目标网站C++技术网。

        网站只要接收到请求,都是按照请求的源地址和目标地址进行翻转后回复。对C来说,访问网站的是B,并不能感知到A的存在。而A则以为是直接访问的C++技术网。中间的这个转换,是B幕后完成的。A用户可以随意访问网站,不用管VPN的存在。VPN会自动处理内部的转换。

    

    2.负载均衡

    
    负载均衡时,我们从图中可以看到,和反向代理唯一的区别就是用不一样颜色标注的字母。区别在于,A用户此时访问的并不是C++技术网。至少目标网站不是,可能用户访问了一个假的C++技术网。此前确实有很多网站镜像C++技术网,我们也是利用这个原理进行了屏蔽。另外一种情况就是,C++技术网升级配置,支持更高的访问量,会专门开一个服务器用于接受用户的请求,然后再额外的服务器来处理请求。那么用户接受用户请求的这个服务器就是B服务器,而真正处理请求的服务器就是C服务器。B可以快速将请求分发到不同的服务器来处理,可以有效控制服务器压力,支持更大的并发访问量、

        只不过,B服务器为了更好的记录用户信息,会将A的地址在分发请求到C服务器时传递给C服务器,就好像是A用户直接访问了一样。如果没有做这个地址的转换,我们就可以直接屏蔽。用户就好像是真正访问了C++技术网一样。

        这个不是代理,因为B服务器在这里起的作用,主要就是缓解压力。所以通常将B服务器的这个分发请求的功能叫做负载均衡。

    

    3.三角模式

    

        三角模式可以看做是反向代理的一个穿透版本。A直接访问的C,而C直接感知的还是A。实际上B进行了代理。这样的处理,可以让目标网站感觉时真实的用户在访问。所以目标网站不好对源IP进行控制。而对于恶意镜像的网站,是直接充当第一种模式的反向代理,所以通过源IP一下就锁定了。如果是三角模式,就不好搞了。但是三角模式要实现起来还是有点难度的。

    

        以上也是目前常用的和反向代理以及负载均衡相关的三个模式的解释。