vs2022 搭建NET6 WebApi 接口项目《五》 接口访问限流配置

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值