1、在appsetting.json中配置参数
"IpRateLimiting": {
//false则全局将应用限制,并且仅应用具有作为端点的规则* 。 true则限制将应用于每个端点,如{HTTP_Verb}{PATH}
"EnableEndpointRateLimiting": true,
//false则拒绝的API调用不会添加到调用次数计数器上
"StackBlockedRequests": false,
//注意这个配置,表示获取用户端的真实IP,我们的线上经过负载后是 X-Forwarded-For,而测试服务器没有,所以是X-Real-IP
"RealIpHeader": "X-Real-IP",
"ClientIdHeader": "X-ClientId",
"HttpStatusCode": 200, //设置返回状态码
//"QuotaExceededResponse": {
// "Content": "{
{\"code\":429,\"msg\":\"访问过于频繁,请稍后重试\",\"data\":null}}",
// "ContentType": "application/json",
// "StatusCode": 200
//},//返回提示信息
"IpWhitelist": [], //限制白名单,在名单中的IP,则无访问权限
"EndpointWhitelist": [],
"ClientWhitelist": [],
"GeneralRules": [
{
"Endpoint": "*", //对所有接口进行监控
"Period": "10s",
"Limit": 5
ASP.NETCore应用的API限流配置详解

文章介绍了如何在ASP.NETCore中配置API的限流策略,包括在appsetting.json中设置全局和端点限流规则,处理拒绝请求的方式,以及自定义限流中间件返回的信息。同时,在Program.cs中加载并配置限流选项,使用内存缓存和分布式缓存存储计数器和规则。最后,展示了IPLimitMiddleware类的实现,用于处理超过配额的请求。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



