0

我想使用Application Request Routing将负载均衡器添加到现有的 asp.net 项目中。所以我让自己熟悉了这些概念并创建了一个本地测试设置

  • 在 Windows 10 上本地运行的 IIS:
    • 使用 Windows 平台安装程序安装的应用程序请求路由 3.0
    • 使用以下服务器创建服务器场:
      1. <test-server-name>.de(Microsoft 2012 R2 Server:包含 asp.net 项目)
      2. www.google.com(只是为了看看负载平衡和 url 重写是否有效,因为我没有两个可用的测试服务器)

URL重写规则: url重写规则

在任何浏览器中多次输入后localhost,我可以看到负载平衡(加权循环)工作正常。它在 1. 和 2. 网站之间交替。

我面临的问题是两个网站上的404 错误在此处输入图像描述

我已经尝试了以下方法:

  • 安装和启用失败的请求跟踪规则(在本地 IIS 上):我认为 URL 重写工作正常。
    失败的请求日志www.google.com谷歌驱动器,解压缩并xml在例如 IE 中打开以获得更好的视图

  • 在不自动创建 URL 重写规则的情况下创建服务器场在此处输入图像描述

    (选择并创建自己的 URL 重写规则)

  • 将应用程序池的“托管管道模式”设置从集成更改经典

  • 其他网站上在此处输入图像描述的健康检查 我完全不知道为什么它在 Git 网站上运行以及为什么 facebook 返回 400 错误代码。

  • 启用/禁用代理(IIS 管理器 -> 应用程序请求路由缓存 -> 服务器代理设置...)

我不知道接下来我能做什么,所以我很感激任何帮助。谢谢。

4

1 回答 1

0

可以在这里找到答案:https ://forums.iis.net/t/1238739.aspx?Why+some+sites+return+HTTP+404+some+don+t+

有些网站根本不支持localhost作为主机名,这就是为什么localhost找不到(错误 404)例如google.com

如果上面的链接将来不起作用,请详细回答:

这不是一个有效的测试。

您正在做的是将请求的主机名发送到第三方服务器。就像谷歌一样。

因此,如果您的请求是http://example.com,那么您将其发送到 www.google.com,并且 Google 服务器可能会拒绝此请求,如您所见

Web 服务器管理员通常不会让自己接收来自他们不托管的域的流量。

如果您使用 mysite.com 向我的服务器 IP 发送请求,我也可能会拒绝它。(如果您有通配符站点并且允许所有流量通过,事情会变得复杂)

但简单地显示来自 Google 的 404 页面意味着旅游请求到达那里的服务器,这意味着 ARR 正在工作。

如果您真的想以这种方式对其进行测试,请使用 www.google.com 解析为您的服务器 IP 的本地主机文件。设置一个以 www.google.com 作为主机头的站点,然后您应该会在 Google 中看到正确的信息。但是没有考虑到第 3 方管理员在他们身边所做的事情。

于 2018-06-19T07:14:48.627 回答