- 概念
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。由于外部网络上的主机并不会配置并使用这个代理服务器,普通代理服务器也被设计为在Internet上搜寻多个不确定的服务器,而不是针对Internet上多个客户机的请求访问某一个固定的服务器,因此普通的Web代理服务器不支持外部对内部网络的访问请求。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。此时代理服务器对外就表现为一个Web服务器,外部网络就可以简单把它当作一个标准的Web服务器而不需要特定的配置。不同之处在于,这个服务器没有保存任何网页的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对反向代理服务器的攻击并不会使得网页信息遭到破坏,这样就增强了Web服务器的安全性。
反向代理方式和包过滤方式或普通代理方式并无冲突,因此可以在防火墙设备中同时使用这两种方式,其中反向代理用于外部网络访问内部网络时使用,正向代理或包过滤方式用于拒绝其他外部访问方式并提供内部网络对外部网络的访问能力。因此可以结合这些方式提供最佳的安全访问方式。
2.如何实现
a. 用ISAPI_Rewrite实现反向代理(ReverseProxy)
(原文: http://www.cnblogs.com/dudu/archive/2008/01/10/81924.html)
ISAPI_Rewrite是一个强大的基于正则表达式的URL处理引擎。它非常类似于Apache's mod_Rewrite,但它是专为IIS设计的。
ISAPI_Rewrite有两个版本:ISAPI_Rewrite Full与ISAPI_Rewrite Lite。
ISAPI_Rewrite Lite是免费版本,但不支持反向代理功能。
ISAPI_Rewrite Full只能下载到30天的试用版本。
这篇文章介绍的是基于ISAPI_Rewrite Full实现反向代理。配置实际上很简单。写出来的目的主要是希望给初次使用ISAPI_Rewrite的朋友提供参考。
下面就是配置步骤:
1、下载ISAPI_Rewrite Full: http://www.helicontech.com/download/#isapi_rewrite
2、安装ISAPI_Rewrite Full
3、修改配置文件httpd.ini,默认位置在C:\Program Files\Helicon\ISAPI_Rewrite。假如我们现在有两台Web服务器,一台是www.cnblogs.com, 另一台是 www2.cnblogs.com, www2作为一台反向代理服务器,客户端浏览器访问www2服务器,www2服务器向www服务器请求内容并返回给客户端。具体在httpd.ini的配置如下:
在httpd.ini中增加下面的内容:
RewriteCond Host: www2\.cnblogs\.com
RewriteProxy (.*) http\://www.cnblogs.com$1 [I,F,U]