图解正向代理与反向代理

3,877 阅读2分钟

正向代理

目前国内无法访问google,但是我们有时说挂个代理,然后就能顺利访问,而这种代理模式就是正向代理。假如我们在香港有一台服务器,这台服务器是能访问google的,而国内无法直接访问谷歌,但是可以访问香港的服务器。每次我们请求香港服务器,香港服务器拿到我们请求以后,再去访问google服务器,google服务器把响应返回给香港服务器,香港服务器再把响应返回给我们。这样我们就能顺利的访问google了。

正向代理最大的特点是服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端,正向代理模式屏蔽或者隐藏了真实客户端信息。

但是如果过多的客户端使用代理,导致代理服务器频繁请求google,而google可能认为代理服务器是爬虫,会做一些反扒机制,这样客户端就无法正常访问,所以有时候代理服务器会告诉google我是一台代理服务器。

一般来说代理分为三种,即透明代理,匿名代理和高匿名代理。

  • 透明代理,代理服务器暴露了客户端真实的信息。
  • 匿名代理,隐藏了客户端信息,但是会声明自己是代理服务器。
  • 高匿名代理,隐藏了客户端信息,也不会声明自己是代理服务器,目标服务器不知道是否使用了代理,更不知道客户端真实信息

反向代理

例如淘宝,每天访问量很大,不可能只用单个服务器处理所有业务,于是出现了分布式部署。也就是通过部署多台服务器来解决访问人数限制的问题。

客户端请求taobao.com,DNS服务器把域名解析到nginx服务器上(简单的这么理解),nginx服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。

反向请求的来源也就是客户端是明确的,但是请求的具体由哪台服务器处理并不明确,nginx扮演的就是一个反向代理角色。

反向代理隐藏了具体处理业务的服务器信息。

总结

正向代理,相对来说,目标服务器不清楚客户端信息,请求是由代理服务器发起。

反向代理,客户端不清楚具体是由哪台服务器处理业务的。比如我们访问淘宝,并不关心是具体哪台服务器处理了我们业务,我们只知道访问了taobao.com