出于安全性考虑,局域网络内的机器浏览访问墙外的网站借助代理服务器进行,假如把局域网络外Internet想象成一个巨大的资源库,局域网络内的用户要浏览这个库里的资源务必统一利用代理服务器进行。相反,假如局域网络向Internet供应资源,让Internet上的用户浏览局域网络内的资源也能设置成一个代理服务器,只不过是与我们常用的代理服务器方向恰好相反,因此叫反向代理(ReverseProxy)。
1、代理可分为三种:标准的代理缓冲服务器、透明代理缓冲服务器、反向代理缓冲服务器
(1)标准的代理缓冲服务器
这类方法需要在浏览器配置中指出代理服务器的IP地址和端口号。浏览器每一次都把请求送给代理服务器解决。代理服务器能够有缓存的功能:它依据请求明确是否连接到远程web服务器获取数据,假如在本地缓冲区有目标数据信息,则会直接将缓存数据发给用户即可,要是没有的话则先取回数据信息,先在本地保存一份缓冲,随后将数据信息发给客户端浏览器。
(2)透明代理缓冲服务器
透明代理缓冲服务器和标准代理服务器的功能基本相同,可是代理实际操作对客户端的浏览器是透明的(即不需指出代理服务器的IP和端口号)。透明代理服务器阻断网络通信,然后过滤出浏览外部的HTTP(80端口)流量。假如客户端的恳求在本地有缓冲则将缓冲的数据信息会直接发给用户,假如在本地没有缓冲则向远程web服务器发出请求,其他实际操作和标准的代理服务器基本相同。对于Linux操作系统而言,透明代理使用Iptables或者Ipchains实现。由于不用对浏览器作任何设置,因此透明代理对于ISP(Internet服务器提供商)非常有用。
(3)反向代理缓冲服务器
反向代理是和前两种代理完全不同的一种代理服务,使用它能够降低原始web服务器的负载。反向代理服务器承担了对原始web服务器的静态网页的恳求,防止原始服务器过载。它地处本地web服务器和Internet之间,解决全部对web服务器的恳求,组织了web服务器和Internet的会直接通信。假如互联网用户恳求的页面在代理服务器上有缓冲的话,代理服务器随时将缓冲内容发给用户;要是没有缓冲,则先向web服务器发出请求,取回数据信息并在本地缓存后再发给用户。这类方法利用降低了向web服务器的恳求数,进而降低了web服务器的负载。
2、反向代理有两种使用方法:
(1)一种是为多个网站的Web服务器供应代理,这种网站的域名都指向反向代理服务器,对这种网站的恳求全都发给了反向代理,由反向代理服务器转发HTTP恳求给相应网站的Web服务器。
(2)一种是为一个网站的Web服务器集群供应代理,反向代理身为负载均衡器决定具体哪个Web服务器接收恳求。
反向代理一直位于Web服务器的前端,Internet上的用户对Web服务器的连接要先经过反向代理,随后由反向代理决定哪个Web服务器解决用户恳求,并将恳求路由给相应的Web服务器。对静态内容能够在反向代理上缓存,这样就不用再向Web服务器路由了。
3、除了缓存和负载均衡,反向代理还能供应以下功能:
(1)安全性:反向代理隔离了用户和Web服务器,用户难以针对特殊的服务器发动攻
(2)数据加密/SSL加速:一些Web服务器可能不具备SSL加密功能,可是具备加密功能的反向代理服务器能够为Web服务器供应数据加密,同时装备了SSL加速硬件的反向代理服务器还能为Web应用供应了高速的加密通道;
(3)压缩:代理服务器能压缩经过的数据信息以节省带宽