之前我问过这个问题并且我已经知道如何使用ISA Server 2006来实现这个功能,我当前的问题是如何在不使用ISA Server但仅使用纯IIS的情况下实现相同的功能。有没有人有任何想法?
我的开发/部署环境是IIS + Windows Server 2003/2008 + .Net + VSTS2008 + C#。我有几个网站,每个网站都有稳定版和测试版,例如,我有测试版订购系统和稳定版订购系统,与购买系统相同。我在4台不同的物理机器上部署了4个系统(机器名称labvm1,labvm2,labvm3和labvm4)。
我的要求是,我希望有一个通用的URL架构来访问不同的系统,比如
http://www.mycorp.com/order/beta
http://www.mycorp.com/order/stable
http://www.mycorp.com/purchase/beta
http://www.mycorp.com/purchase/stable
但是,由于4个系统部署在具有不同机器/ DNS名称的4台不同物理机器上,我如何将具有不同后缀的同一域(http://www.mycorp.com)映射到不同的物理在线系统?
提前谢谢, 乔治答案 0 :(得分:1)
一种方法是在根服务器(www.mycorp.com)中设置具有代理功能的URL重写模块。我所知道的是来自Helicon Tech的商业产品,ISAPI Rewrite。查看http://www.isapirewrite.com/docs/#RewriteProxy处的文档。他们基本上使用相同的语法实现了Apache Rewriting mod的所有功能。
您可以设置以下规则: RewriteProxy ^ purchase / beta /(.*)$ http://192.168.0.12:8080/ $ 1
答案 1 :(得分:1)
IIS7 URL重写模块目前不支持反向代理功能,因此您最好使用ISAPI-Rewrite 3或Helicon Ape mod-proxy模块。 ISAPI_Rewrite的配置与Ariel提供的配置类似:
RewriteBase /
RewriteProxy ^purchase/beta/(.*)$ http://192.168.0.12:8080/$1
Ape的配置(Ape专为IIS7设计)是:
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /purchase/beta/(.*) http://192.168.0.12:8080/$1
答案 2 :(得分:0)
IIRF v2.0支持反向代理功能。使用此功能,您可以将一组服务器映射到单个URI命名空间,从而隐藏映射资源的内部计算机名称。
IIRF是免费的,适用于IIS6和7.