带有URLRewrite 2.0的Canonical Hostname在负载均衡器后面

时间:2011-03-16 22:52:55

标签: iis-7 url-rewriting load-balancing

我在负载均衡器后面有两个IIS7 Web服务器。 URL Rewrite 2.0模块安装在两台服务器上,并且以下重写规则应用于两个实例:

<rule name="Enforce canonical hostname" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{HTTP_HOST}" negate="true" pattern="^www\.mydomain\.com$" />
    </conditions>
    <action type="Redirect" url="http://www.mydomain.com/{R:1}" redirectType="Permanent" />
</rule>

当我尝试导航到http://mydomain.com时,我的网络浏览器会无限期挂起。我怀疑负载均衡器正在影响URL Rewrite的工作方式,但我无法确定。

2 个答案:

答案 0 :(得分:2)

我们最终使用了以下技术:

http://www.mcanerin.com/en/articles/301-redirect-iis.asp

关键是将 $ S $ Q 添加到域名的末尾。

答案 1 :(得分:0)

我的猜测是, 1.负载均衡器将您的请求转发给您的子服务器 2.当请求到达子服务器时,他们会根据您的URL重定向规则重定向请求,因此您的请求被重定向并再次出现在负载均衡器上 3.然后按照相同的程序(步骤1-2),

因此您的请求会一次又一次地循环,您的浏览器会被挂起。