Azure - Web角色 - 根据主机筛选出请求

时间:2015-02-11 04:02:18

标签: azure hostheaders

最近,我们遇到了一个问题,即我们在Azure上的Web角色获得了以前与thepiratebay跟踪器关联的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的请求)。这可能吗?

2 个答案:

答案 0 :(得分:2)

无法完全skip /turn off处理不需要的请求。但是,使用hostHeader属性会带来一些权衡。检查documentation here

至少有一个问题:

  • 当您使用主机标头时,您的网站将回复请求 用这个标题。

  • 无法hostHeader属性中使用通配符。

该属性直接应用于IIS中网站的host header绑定属性。因此 - 不支持通配符。

因此,只有描述您在hostHeader中定义的内容的请求才会登陆您的网站。然而,其余的请求将落在IIS中的Default Web Site上。

您可以通过start-up tasksome example for changing IIS settings via Startup Tasks)关闭Default Web Site

答案 1 :(得分:2)

如果您处于主机标头级别,则流量已经到达您的角色实例。在此之前阻止流量的唯一方法是使用端点上的访问控制列表(ACL)。

如果问题仅基于您最终遇到的特定IP地址,则可以删除然后重新部署您的云服务包,这将分配新的IP地址。