Azure - Web角色 - 根据主机过滤请求

标签 azure hostheaders

最近我们遇到了一个问题,即我们在 Azure 上的 Web 角色获得了之前与 thepiratebay tracker 关联的 IP 地址。这意味着大约 5 000 000 个请求都是 404。我认为是 DNS 服务器的问题。

我想做的是过滤掉指向与我们网站不同的主机的请求。是否可以通过hostHeader属性来实现这一点

<ServiceDefinition name="AB.AzureSite" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2014-06.2.4">
  <WebRole name="AllBlacksdotcom" vmsize="Medium">
    <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="Endpoint1" endpointName="Endpoint1"  hostHeader=""/>
        </Bindings>
      </Site>
    </Sites>

我们希望完全避免请求到达我们的网站(例如针对主机 track.thepiratebay.org 的请求)。这可能吗?

最佳答案

没有办法完全跳过/关闭对不需要的请求的处理。然而,使用 hostHeader 属性将使您在一些权衡中非常接近。检查 documentation here

至少有一个问题:

  • 当您使用主机 header 时,您的网站将回复请求 与此标题。

  • 不能hostHeader 属性中使用通配符。

该属性直接应用于 IIS 中网站的主机头绑定(bind)属性。因此 - 不支持通配符。

因此,只有描述您在 hostHeader 中定义的内容的请求才会到达您的网站。然而,其余请求无论如何都会到达 IIS 中的默认网站

您可以通过 start-up task ( some example for changing IIS settings via Startup Tasks ) 关闭默认网站

关于Azure - Web角色 - 根据主机过滤请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28446396/

相关文章:

azure - 使用 bicep 部署逻辑应用 - 将 JSON 转换为有效的 Bicep

azure - 用于加载 azure 复制数据事件的动态 SQL

c# - 您可以从远程 C# 应用程序创建 SQL Azure BACPAC

azure - 无法通过 Powershell 创建资源组

ssl - 使用 MVC 通配符证书在 Azure 上托管许多 SSL 站点

.net - WCF 使用计算机名称而不是 IP 地址,无法解析

node.js - 如何使用 Node 和 Express 建立客户/客户风格的子域

wcf - 如何对 IIS 6 托管的 WCF 服务进行负载平衡?

asp.net - 在 ASP.NET 中,是否可以按主机名输出缓存?即,varbyhost 或 varbyhostheader?

c# - 使用 C# 将文件从 azure 文件共享移动到 Blob 存储中