IIS – redirect多个主机名的最有效的方法

我正在build立一个安装了URL Rewrite模块的Win 2012 / IIS 8 Web服务器来replace现有的Web服务器。

它将有3个高度使用的网站映射到不同的域名。

  • domain1.com(IIS中的站点1,主机名绑定到domain1.com)
  • domain2.com(IIS中的站点2,主机名绑定到domain2.com)
  • domain3.com(IIS中的站点3,主机名绑定到domain3.com)

我遇到的问题是,我有许多遗留域(~20)需要redirect(301)不同的这些网站和外部网站。

1)我可以使用服务器级定义的URL重写规则来创build这些redirect

要么

2)我可以创build一个附加站点,并使用主机名绑定将所有这20个左右的名称绑定到该站点,然后在该站点内使用 – URL重写规则

要么

3)还有什么更高效的?

我倾向于选项2,因为我猜测站点名称绑定比对所有传入请求评估URL重写规则更有效 – 而URL重写规则只有在匹配的主机名进来时才被评估。在现有的日志中,传统URL的stream量<1%

如果使用1),则所有的请求(甚至是有效的站点)都必须由url重写模块处理。 如果你有一大堆规则,就会增加每个请求的处理时间。

如果使用2),那么主站点尚未处理的请求将由重写模块处理。 这是可取的。

第三个select是,仍然有20多个网站。 每个原始网站一个。 然后,对于每个站点,只有针对特定站点的重写规则列表要小得多。

即使这个选项需要更长的时间来设置(脚本是你的朋友),它应该是最快的,因为你让http.sys在内核模式下决定什么对每个请求,它将请求路由到正确的网站。 那么你的重写规则就没有什么工作要做了。