一听反向代理(Reverse Proxy)
这个词是否感觉很玄乎?反过来,正向代理(Forward Proxy)
似乎更玄乎?通常为了方便,直接将正向代理
简称为代理
,所以使得正向代理
听起来反而更加陌生。
其实二者有很多的相似之处,最大的区别无非就是代理的对象不同。何为代理的对象不同?即为谁代理。


正向代理
之前有看到过一个图,很形象。遗憾的是现在我暂时没找到这个图。图片内容大概就是一对夫妻正在喝西瓜汁。其中,女子正在喝西瓜汁,但是男子由于无法直接喝到西瓜汁,于是将吸管接到女子的嘴里:先由女子将西瓜汁吸到嘴里,然后男子从女子嘴里喝女子从西瓜中吸取的西瓜汁。这便是代理的最朴素的应用。其中,女子(的嘴)就充当了代理
的角色。

正向代理
目前最普遍的用途:
- 访问无法直接访问的资源(“科学上网法”)
- 加速访问(减少路由中转,或者通过高带宽链路替代低带宽链路来提高访问速度)
- Cache 作用(正向,反向代理都有用到)
- 客户端访问授权(例如:跳板机)
- 隐藏实际访问者的身份(例如:“肉鸡”)
总结
正向代理服务器
是一个位于客户端
和原始服务器
之间的服务器,为了从原始服务器
取得内容,客户端
向代理服务器
发送一个请求并指定目标(原始服务器
),然后代理服务器
向原始服务器
转交请求并将获得的内容返回给客户端
,通常是在客户端
上对代理服务器
进行配置。
反向代理
与正向代理相反。客户端
通常对代理服务器
没有感知。
反向代理
目前最普遍的用途:
- 保证内网的安全(例如:可以使用反向代理提供 WAF 功能,阻止 web 攻击)

负载均衡
总结
反向代理
实际运行方式是指以代理服务器
来接受 Internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 Internet 上请求连接的客户端
,此时代理服务器
对外就表现为一个服务器。
透明代理
通过篡改报文(Request fields)
,并传送真实 IP。通常客户端和服务端都没有感知。
最常见的应用:
- 许多公司为了监管用户而使用的行为管理软件。
CDN 技术
使用了智能 DNS 技术和反向代理技术,此处因为讨论到反向代理,顺便一提,不作详细说明。