标签:
如果没有特别说明,一般的代理技术均指Forward Proxy,即正向代理。代理服务器(Proxy Server)位于客户端(Client)和服务器(Server)之间,为了向Server获取内容,Client向Proxy Server发送一个请求并指定目标Server,然后Proxy Server向Server转交请求,并将获得的内容返回给Client。通常情况下,Client必须进行一定的配置(如配置Forward Proxy的IP地址、端口),才可以使用Forward Proxy。
应用场景:
1. 访问本地无法直接访问的服务器,最常见的场景就是:企业内网访问互联网,代理服务器上有两块网卡,一块配置的是内网的地址,一块是外网。公司不允许内网直接访问互联网,通过在浏览器中配置代理,达到通过代理访问互联网的目的。
2. 缓存,这个非常常见,互联网网站性能提升的利器。服务端的数据会缓存在代理上,一方面加速了用户的访问速度,另一方面还减轻了网络带宽的消耗。
3. 访问授权,客户端A/B要访问服务器,但是需要通过授权才可以,假如在代理服务器配置了A allow, B deny的规则,那么A通过代理可以访问服务器,而B访问时,因为未授权,数据包在到达代理时,直接被丢弃。
根据字面意思也就是Client根本不知道有Proxy Server的存在,而Proxy Server会修改你的请求内容,并会传送真实的IP。
应用场景:
公司现在某些网站的访问。例如为了避免员工工作时间浏览购物网站,某公司屏蔽了这些网站的访问。当员工接上网络,访问这些网站时,会得到“不在允许访问的范围内”的提示。这就是透明代理的应用。公司在内网和外网的中间插入了一个透明代理,并在代理上设置了禁止访问的规则,通过抓取请求内容,匹配该规则的请求均被重定向到提示页面。
通过一个例子来理解反向代理。我们有一台Server,其域名为www.dt.com,如果有恶意用户通过技术手段尝试攻击该Server,那么很容易导致Server不安全。这样就在恶意用户和Server之间加入一个Proxy Server来冒充Server,并且在Server上设置防火墙策略,只允许Proxy Server访问该Server,那么对恶意用户来说,Proxy Server就是他想破坏的Server,从而就能保护真正的Server。这里Proxy Server实现的功能就是反向代理。
应用场景:
1. 负载均衡,例如常见的apache/nginx实现的反向代理和负载均衡,代理服务根据请求的来源可以判断将请求发送给哪个机房,并且根据配置的策略,使得机房中每台机器的访问量大致相同。
2. 原始服务器伪装,用户访问www.dt.com,请求时产生的URL为http://www.dt.com?query=jay,通过DNS解析域名后,请求被发送到B服务器,B服务器收到请求,将URL重组为http://1.1.1.1?query=jay,发送给A服务器;A机器收到请求,防火墙检查这个请求是否来自B,如果不是则拒绝;A服务器拿到query=jay进行处理,得到结果result,A服务器将result发送给B服务器,B服务器将result发送给用户。这里的B服务器就伪装了A来处理用户的请求。
与正向代理的区别:
对Client来说,Proxy Server就是原始Server,而且客户端不需要进行任何配置。
标签:
原文地址:http://my.oschina.net/vbird/blog/382302