正向代理VS反向代理

来源:互联网 发布:海上灵光淘宝 编辑:程序博客网 时间:2024/06/06 02:22

一、正向代理

为了从原始服务器取得内容,用户向代理服务器发送一个请求并指定目标,然后代理服务器向服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
正向代理服务器作用主要有以下几点:
1、访问本无法访问的服务器
现实中的例子就是“翻墙”。我们本来无法直接访问国外的一些技术网站(google),但是我们可以通过使用VPN的方式来间接访问。主要原因就是我们想VPN代理服务器发送请求,由代理服务器去访问真实的目标,从而把结果返回给我们。
2、Cache作用
Cache(缓存)技术和代理服务技术是紧密联系的,不光是正向代理,反向代理也使用了Cache(缓存)技术。Cache主要作用于对静态资源的缓存,当有一个用户访问过这个静态资源后,其它用户在访问同一个静态资源就不需要去源服务器取数据了。
3、隐藏访问者的行踪
服务器B并不知道访问自己的实际是用户A,因为代理服务器Z代替用户A去直接与服务器B进行交互。如果代理服务器Z被用户A完全控制(或不完全控制),会惯以“肉鸡”术语称呼。
正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。

二、反向代理

反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。
使用反向代理服务器的作用如下:
1、保护和隐藏原始资源服务器
在反向代理服务中,用户实际上访问的是代理服务器,隐藏了真实服务器的IP和端口,从而达到隐藏原始资源服务器的目的。使用反向代理,攻击者就无法知道真实服务器的IP和端口信息,也就没法对真实服务器进行攻击了。
2、负载均衡
使用反向代理,对用户而言一直都是访问的同一个代理服务器,至于代理服务器具体访问哪个真实服务器对用户是透明的。因此,能够部署多台服务器来响应代理服务器的请求,而代理服务器则只需要选择其中任意一台真实服务器来提供服务就可以了。从而达到服务器资源的自动负载均衡的目的。

LZ使用nginx和tomcat进行反向代理,具体请参考:

原文:http://z00w00.blog.51cto.com/515114/1031287

0 0