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: 端点规则列表,用于配置特定端点的速率限制,优先级高于通用规则。请根据实际需求进行相应的配置。
原文地址: https://www.cveoy.top/t/topic/p2Ql 著作权归作者所有。请勿转载和采集!