浅谈HTTP代理中的反向代理!出于安全考虑,局域网中的机器在代理服务器的帮助下访问一些网站。如果把局域网外的互联网看作一个巨大的资源池,局域网内的用户必须通过代理服务器访问这个池中的资源。另一方面,如果局域网向互联网提供资源,互联网上的用户可以访问局域网内的资源,也可以设置为代理服务器,这与我们常用的代理服务器正好相反,所以称为反向代理。
1.代理可以分为三种:标准代理缓冲服务器、透明代理缓冲服务器和反向代理缓冲服务器。
(1)标准代理缓冲服务器
该方法需要在浏览器配置中指定代理服务器的IP地址和端口号。浏览器每次都会将请求发送给代理服务器进行处理。代理服务器可以有缓存的功能:它根据请求决定是否连接远程web服务器获取数据。如果本地缓冲区中有目标数据,可以将缓存的数据直接传输给用户;如果没有,可以先检索数据,先保存本地缓冲区,然后将数据发送到客户端浏览器。
(2)透明代理缓冲服务器
透明代理缓冲服务器和标准代理服务器的功能完全相同,但是代理操作对客户端的浏览器是透明的(即不需要指定代理服务器的IP和端口号)。透明代理服务器会阻止网络通信,并过滤掉外部HTTP(端口80)流量。如果客户端的请求在本地缓冲,缓冲的数据将直接发送给用户;如果本地没有缓冲区,请求将被发送到远程web服务器,其余操作与标准代理服务器完全相同。对于Linux操作系统,透明代理由Iptables或Ipchains实现。透明代理对于ISP(互联网服务器提供商)尤其有用,因为不需要设置任何浏览器。
(3)反向代理缓冲服务器
反向代理是一种完全不同于前两种代理的代理服务,可以减轻原web服务器的负载。反向代理服务器承担对原始web服务器的静态页面的请求,以防止原始服务器过载。它位于本地web服务器和Internet之间,处理对web服务器的所有请求,并组织web服务器和Internet之间的直接通信。如果互联网用户请求的页面缓存在代理服务器上,代理服务器直接将缓存的内容发送给用户;如果没有缓冲区,首先向web服务器发送请求,检索数据并在本地缓存,然后发送给用户。这种方法通过减少对web服务器的请求数量来减少web服务器的负载。
2.反向代理有两种使用方式:
一种是为几个网站的web服务器提供代理,这些网站的域名都指向反向代理服务器,对这些网站的所有请求都发送到反向代理服务器,反向代理服务器将HTTP请求转发到相应网站的Web服务器。
另一种是为一个网站的web服务器集群提供代理,反向代理作为负载均衡器来决定哪个Web服务器接收请求。
反向代理总是位于Web服务器的前端。Internet上的用户必须首先通过反向代理连接到Web服务器,然后反向代理决定哪个Web服务器处理用户的请求,并将请求路由到相应的Web服务器。静态内容可以缓存在反向代理上,这样就不必路由到Web服务器。除了缓存和负载均衡,反向代理还可以提供以下功能:反向代理将用户与Web服务器隔离,用户很难对特定服务器发起攻击;数据加密/SSL加速:部分Web服务器可能不具备SSL加密功能,但具备加密功能的反向代理服务器可以为Web服务器提供数据加密,配备SSL加速硬件的反向代理服务器也可以为Web应用提供高速加密通道;代理服务器可以压缩传递的数据以节省带宽。