【问题标题】:Dynamic IP Address Restrictions for .NET Core Web API Application on azure Web Appazure Web App 上 .NET Core Web API 应用程序的动态 IP 地址限制
【发布时间】:2018-05-08 20:46:23
【问题描述】:

我使用 .net core 1.0“版本”:“1.0.5”开发了一个 Web API 应用程序并部署在 Azure 网络应用程序上。

目前,当用户同时点击端点时,我遇到了 API 端点的问题。因此,对于我的 CPU/DTU 百分比从 60 增加到 100。为此,我应该限制该用户同时点击 API 端点。我不知道限制这些IP。我对这个问题很陌生。

谁能帮我解决这个问题?

注意:- 当他同时访问 API 端点时,我应该在有限的时间内阻止这些 IP。

谢谢,

帕蒂班。

【问题讨论】:

  • 我建议对速率限制和 .net 核心进行一些研究。有一些 nuget 包可以帮助你解决这个问题,但你必须看看它们是否适合你的需求。

标签: c# asp.net-core-webapi azure-web-app-service akamai


【解决方案1】:

您可以使用 IIS 7.0 提供的解决方案来防止此类问题,该解决方案称为 动态 IP 限制 (DIPR) 模块。

动态 IP 限制 (DIPR) 主要功能:

根据并发请求数阻止 IP 地址

根据一段时间内的请求数量阻止 IP 地址

要在 Azure 网站中获得此服务,您需要对您网站的 web.config 文件进行一些更改。

1.编码sn-p来处理并发请求

<system.webServer>
    <security>
        <dynamicIpSecurity>
            <denyByConcurrentRequests enabled="true" maxConcurrentRequests="10"/>
        </dynamicIpSecurity>
    </security>
</system.webServer>

将denyByConcurrentRequests(dynamicIpSecurity 节点下)的 enabled 属性设置为 true。 当客户端超过并发请求时,他们的 IP 将被暂时阻止,以便在短时间内进一步请求。

2.Code sn-p to 处理指定时间范围内的maxRequests:

<system.webServer>
   <security>
      <dynamicIpSecurity>
         <denyByRequestRate enabled="true" maxRequests="15" requestIntervalInMilliseconds="5000"/>
      </dynamicIpSecurity>
   </security>
</system.webServer>

设置denyByRequestRate 的启用属性。属性 maxRequests 确定给定客户端 IP 地址可以发送到您的站点的请求数,requestIntervalInMilliseconds 确定时间范围。

IIS 将自动在客户端超出您指定的规则时开始阻止来自 IP 地址的请求。因此,根据我设置的客户端在 5 秒内发出超过 15 个请求的值将被暂时阻止。

有疑问可以参考configure Dynamic IP Address Restrictions in Windows Azure Web Sites的方法。

【讨论】:

    猜你喜欢
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 2021-04-04
    • 1970-01-01
    相关资源
    最近更新 更多