1. 首页
  2. 开发笔记

IIS中使用的ISAPI_Rewrite Full版本做反向代理(ReverseProxy)详解

代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

反向代理(ReverseProxy)是什么?

大家去过落伍者吧?大家可以通过IP查看落伍的IP是在韩国,大家可知道,其实落伍的数据还是在国内。如何做到这样的呢,这就叫反向代理,在韩国的服务器将http请求发送到国内服务器的某个http端口,再将回传的数据返回到韩国,发送至客户,这样就完成了网站实体在国内,看起来网站在国外。

这里说一下IIS做反向代理,实现这个功能ISAPI_Rewrite Full版本可以实现。下载ISAPI_Rewrite Full,安装。

在创建一个网站,这个网站可以用你想要的域名进行访问到,或者最直接的方法就是空主机头的网站,再在网站下面创建一个httpd.ini文件,内容代码如下:

[ISAPI_Rewrite]
RewriteCond Host: www\.taonage\.com
RewriteProxy (.*) http://vegirl.com:81$1 [I,F,U]

注意:上面一行 RewriteCond Host: www\.taonage\.com 用户访问的域名,即代理服务器绑定的域名,下面一行 RewriteProxy (.*) http://vegirl.com:81$1 [I,F,U] 是网站实际的域名,即网站实际所存放的服务器域名。如果要把网站映射到多个域名或子域名上,只需要多写几行规则就可以了。

其意思是将www.taonage.com映射到http://vegirl.com:81,这里可以自由映射到别的端口。

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。由于外部网络上的主机并不会配置并使用这个代理服务器,普通代理服务器也被设计为在Internet上搜寻多个不确定的服务器,而不是针对Internet上多个客户机的请求访问某一个固定的服务器,因此普通的Web代理服务器不支持外部对内部网络的访问请求。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。此时代理服务器对外就表现为一个Web服务器,外部网络就可以简单把它当作一个标准的Web服务器而不需要特定的配置。不同之处在于,这个服务器没有保存任何网页的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对反向代理服务器的攻击并不会使得网页信息遭到破坏,这样就增强了Web服务器的安全性。

反向代理方式和包过滤方式或普通代理方式并无冲突,因此可以在防火墙设备中同时使用这两种方式,其中反向代理用于外部网络访问内部网络时使用,正向代理或包过滤方式用于拒绝其他外部访问方式并提供内部网络对外部网络的访问能力。因此可以结合这些方式提供最佳的安全访问方式。

代理服务器充当服务器的替身

如果您的内容服务器具有必须保持安全的敏感信息,如信用卡号数据库,可在防火墙外部设置一个代理服务器作为内容服务器的替身。当外部客户机尝试访问内容服务器时,会将其送到代理服务器。实际内容位于内容服务器上,在防火墙内部受到安全保护。代理服务器位于防火墙外部,在客户机看来就像是内容服务器。

当客户机向站点提出请求时,请求将转到代理服务器。然后,代理服务器通过防火墙中的特定通路,将客户机的请求发送到内容服务器。内容服务器再通过该通道将结果回传给代理服务器。代理服务器将检索到的信息发送给客户机,好像代理服务器就是实际的内容服务器(参见图 14-1)。如果内容服务器返回错误消息,代理服务器会先行截取该消息并更改标头中列出的任何 URL,然后再将消息发送给客户机。如此可防止外部客户机获取内部内容服务器的重定向 URL。

这样,代理服务器就在安全数据库和可能的恶意攻击之间提供了又一道屏障。与有权访问整个数据库的情况相对比,就算是侥幸攻击成功,作恶者充其量也仅限于访问单个事务中所涉及的信息。未经授权的用户无法访问到真正的内容服务器,因为防火墙通路只允许代理服务器有权进行访问。

可以配置防火墙路由器,使其只允许特定端口上的特定服务器(在本例中为其所分配端口上的代理服务器)有权通过防火墙进行访问,而不允许其他任何机器进出。

安全反向代理

当代理服务器与其他机器之间有一个或多个连接使用安全套接字层 (SSL) 协议加密数据时,即会进行安全反向代理。

安全反向代理有许多用途:

可以提供从防火墙外部代理服务器到防火墙内部安全内容服务器的加密连接。

可以允许客户机安全地连接到代理服务器,从而有利于安全地传输信息(如信用卡号)。

安全反向代理会造成各安全连接因加密数据所涉及的系统开销而变慢。但是,由于 SSL 提供了高速缓存机制,所以连接双方可以重复使用先前协商的安全参数,从而大大降低后续连接的系统开销。

配置安全反向代理服务器的方法有三种:

Secure client to proxy。
如果未经授权的用户很少或根本没有机会访问代理服务器与内容服务器之间交换的信息,则此方案很有效

Secure proxy to content server。
如果客户机在防火墙内部而内容服务器在防火墙外部,则此方案很有效。在此方案中,代理服务器可以充当站点之间的安全通道

Secure client to proxy and secure proxy to content server。
如果需要保护服务器、代理服务器和客户机三者间所交换信息的安全,则此方案很有效。在此方案中,代理服务器既可起到站点间安全通道的作用,又可增加客户机验证的安全性。

有关如何设置上述每种配置的信息,参见设置反向代理服务器。

除了 SSL 之外,代理服务器还可以使用客户机验证,这种方法要求向代理服务器提出请求的计算机提供证书(或标识表单)以核实其身份。

原创文章,作者:斑斓网站长,如若转载,请注明出处:https://www.argb.net/iis-isapi_rewrite-full-version-used-to-do-reverse-proxyd.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

在线咨询:点击这里给我发消息

邮件:admin@argb.net

工作时间:周一至周五,9:30-18:30,节假日休息