[英]Dynamic IP Address Restrictions for .NET Core Web API Application on azure Web App
我已经使用.net core 1.0“ version”:“ 1.0.5”开发了一个Web API应用程序,并在Azure Web应用程序上进行了部署。
当前,当用户同时点击该端点时,我面临API端点的问题。 因此,对于我的CPU / DTU百分比,增加到60到100以上。为此,当该用户同时命中API端点时,我应该限制该用户。 我不知道要限制那些IP。 我对这个问题很陌生。
谁能帮我解决这个问题?
注意:-当他同时访问API端点时,我应在有限的时间内阻止这些IP。
谢谢,
Parthiban。
您可以采取的措施是使用IIS 7.0提供的解决方案,该解决方案称为动态IP限制(DIPR)模块 。
动态IP限制(DIPR)的主要功能:
根据并发请求数阻止IP地址
根据一段时间内的请求数量阻止IP地址
若要在Azure网站中获得此服务,您需要在站点的web.config
文件上配置一些更改。
1.用于处理并发请求的代码段
<system.webServer>
<security>
<dynamicIpSecurity>
<denyByConcurrentRequests enabled="true" maxConcurrentRequests="10"/>
</dynamicIpSecurity>
</security>
</system.webServer>
将denyByConcurrentRequests
的enabled属性(在dynamicIpSecurity
节点下)设置为true。 当客户端超过并发请求时,他们的IP将在短时间内暂时被阻止以供进一步请求。
2.用于在指定时间段内处理maxRequests的代码段:
<system.webServer>
<security>
<dynamicIpSecurity>
<denyByRequestRate enabled="true" maxRequests="15" requestIntervalInMilliseconds="5000"/>
</dynamicIpSecurity>
</security>
</system.webServer>
设置denyByRequestRate
的enabled属性。 属性maxRequests
确定给定客户端IP地址可以发送到您的站点的请求数,而requestIntervalInMilliseconds
确定时间范围。
当客户端超出您指定的规则时, IIS将自动开始阻止来自IP地址的请求 。 因此,根据我设置的值,客户端将在5秒钟内发出15个以上的请求,这将被暂时阻止。
如有疑问,可以参考如何在Windows Azure网站中配置动态IP地址限制 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.