【问题标题】:Application Request Routing: Why some sites return HTTP 404 some don't?应用程序请求路由:为什么有些网站返回 HTTP 404 而有些却没有?
【发布时间】:2018-11-11 17:18:18
【问题描述】:

我想使用应用程序请求路由将负载均衡器添加到现有的 asp.net 项目。所以我让自己熟悉了这些概念并创建了一个本地 test-setup

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

网址重写规则:

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

我面临的问题是两个网站上的 404 错误

我已经尝试了以下方法:

  • 安装和启用失败的请求跟踪规则(在本地 IIS 上):我认为 URL 重写工作正常。
    www.google.com 的失败请求日志:google drive,解压缩并打开 xml,例如IE 浏览效果更好

  • 在不自动创建 URL 重写规则的情况下创建服务器场

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

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

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

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

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

【问题讨论】:

    标签: iis url-rewriting load-balancing web-farm-framework


    【解决方案1】:

    可以在这里找到答案: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 方管理员在他们身边所做的事情。

    【讨论】:

      猜你喜欢
      • 2010-11-12
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-20
      • 1970-01-01
      相关资源
      最近更新 更多