net core 50 IpRateLimiting 常规配置json
在 .NET Core 5.0 中使用 IpRateLimiting 库进行常规配置的 JSON 文件如下所示:
{
"IpRateLimiting": {
"EnableEndpointRateLimiting": true,
"StackBlockedRequests": false,
"RealIpHeader": "X-Real-IP",
"ClientIdHeader": "X-ClientId",
"HttpStatusCode": 429,
"GeneralRules": [
{
"Endpoint": "*",
"Period": "1s",
"Limit": 5,
"CounterKeyBuilder": "Path",
"Priority": 1
},
{
"Endpoint": "*",
"Period": "1m",
"Limit": 100,
"CounterKeyBuilder": "ClientId",
"Priority": 2
}
],
"EndpointRules": [
{
"Endpoint": "/api/values",
"Period": "1m",
"Limit": 10,
"CounterKeyBuilder": "Path",
"Priority": 3
}
]
}
}
上述 JSON 文件中的配置项说明如下:
EnableEndpointRateLimiting: 是否启用端点速率限制。StackBlockedRequests: 是否在 IP 被限制时,将请求堆积在队列中等待。RealIpHeader: 指定用于获取真实 IP 的请求头。ClientIdHeader: 指定用于获取客户端 ID 的请求头。HttpStatusCode: 当请求被限制时返回的 HTTP 状态码。GeneralRules: 通用规则列表,用于配置所有端点的速率限制。Endpoint: 端点路径,使用*表示所有端点。Period: 限制周期,以秒或分钟为单位。Limit: 限制每个周期内的请求数量。CounterKeyBuilder: 用于构建计数器键的方式,可选值为Path或ClientId。Priority: 规则的优先级,数字越小优先级越高。
EndpointRules: 端点规则列表,用于配置特定端点的速率限制,优先级高于通用规则。
请根据实际需求进行相应的配置
原文地址: http://www.cveoy.top/t/topic/ikLd 著作权归作者所有。请勿转载和采集!