8

我有两台安装了 IIS 7.5 的 Windows 2008 R2 标准服务器(Server1 和 Server2)。在 Server1 上,我安装了 Web Farm Framework 2.2 并创建了一个服务器 Farm“myFarm.com”。我还在 Server1 上安装了 ARR。

在服务器场中,我添加了 Server2 和 Server1 作为辅助服务器。我已经用默认选项配置了 ARR。负载平衡被配置为“轮询,以便请求可以随机到达两个服务器。

为了测试我的设置,我创建了一个 Test.ASPX 页面并将其部署在两个服务器中。这是一个简单的页面,它返回执行服务器页面的 serverName。这样我就知道负载平衡是否有效。

然后我打开 Internet Exlorer 并尝试从托管 Web Farm 和 ARR 的 server1 浏览我的 Test.ASPX 页面。每次我点击页面请求时都只会转到 Server2。我让我的 server2 在 webfarm 中运行不正常,以检查 Server1 是否处理请求。当我尝试在浏览器中点击 Test.aspx 时,我惊讶地添加了以下错误:

无法路由该请求,因为它已达到 Max-Forwards 限制。服务器可能在请求路由拓扑中自引用自身。

从错误消息看来,当我的 server2 不可用时,ARR 正在向 Server1 发送请求,Server1 再次将请求发送给自身,从而导致环回。我找不到阻止此环回的方法。

我在搜索后发现的一个解决方案是,我不应该将 Server1 添加到 Web 场,因为它托管 ARR,但我只有两台服务器,我不想只为 ARR 使用一台服务器。

一旦我标记我的 server2 健康请求开始由 server2 执行。

有人可以建议应该配置什么来解决这个错误吗?

谢谢

4

2 回答 2

4

我最近遇到了同样的问题,这是对我有帮助的配置(按照 Cedric 在另一篇文章中的建议)。

因此,您可以执行以下操作:

  • 在您的网站配置中,为 Server2 添加额外的绑定,例如,添加到端口 88(即,您应该能够通过导航到 获得响应http://Server2:88/Test.ASPX)。
  • 在您的服务器场配置中,为您的路由添加条件(路由规则 -> URL 重写)以避免处理转到端口 88 的请求:

URL重写配置

于 2014-09-02T15:32:17.303 回答
4

如果您在端口 80 上配置 ARR 并在另一个端口上配置您的网络场,您可以进行自我参考 ARR 并避免获得最大转发限制:例如 8080

因此,当 ARR 将请求路由到自身时,他将在另一个端口上执行此操作,因此避免转发并再次转发请求。

享受 :-)

于 2013-10-08T21:07:34.107 回答