最近我们遇到了一个问题,即我们在 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/