mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2025-12-06 17:23:26 +08:00
【新增】新增客户端IP限流模块。
This commit is contained in:
@@ -54,8 +54,73 @@
|
||||
//记录IP请求数据
|
||||
"IPLog": {
|
||||
"Enabled": false
|
||||
},
|
||||
//开启Ip限流
|
||||
"IpRateLimit": {
|
||||
"Enabled": false
|
||||
}
|
||||
},
|
||||
//ip限流规则设置
|
||||
"IpRateLimiting": {
|
||||
//如果EnableEndpointRateLimiting设置为false,则限制将在全局范围内应用,并且仅适用于端点的规则*。例如,如果您设置每秒 5 次调用的限制,则对任何端点的任何 HTTP 调用都将计入该限制。
|
||||
//如果EnableEndpointRateLimiting设置为true,则限制将适用于每个端点,如{HTTP_Verb}{PATH}。例如,如果您为*:/api/values客户端设置每秒调用 5 次的限制,则每秒可以调用GET /api/values5 次,但也可以调用 5 次PUT /api/values。
|
||||
"EnableEndpointRateLimiting": false,
|
||||
//如果StackBlockedRequests设置为false,则拒绝的呼叫不会添加到节流计数器。如果客户端每秒发出 3 个请求,并且您设置了每秒一个呼叫的限制,则其他限制(例如每分钟或每天计数器)将仅记录第一个呼叫,即未被阻止的呼叫。如果您希望被拒绝的请求计入其他限制,您必须设置StackBlockedRequests为true.
|
||||
"StackBlockedRequests": false,
|
||||
//用于在您的RealIpHeaderKestrel 服务器位于反向代理之后时提取客户端 IP,如果您的代理使用不同的标头,则X-Real-IP使用此选项进行设置。
|
||||
"RealIpHeader": "X-Real-IP",
|
||||
//ClientIdHeader用于提取白名单的客户端 ID 。如果此标头中存在客户端 ID 并且与 ClientWhitelist 中指定的值匹配,则不应用速率限制。
|
||||
"ClientIdHeader": "X-ClientId",
|
||||
//IP白名单:支持Ip v4和v6;如 //"IpWhitelist": [ "127.0.0.1", "::1/10", "192.168.0.0/24" ],
|
||||
"IpWhitelist": [],
|
||||
//端点白名单
|
||||
"EndpointWhitelist": [ "get:/api/license", "*:/api/status" ],
|
||||
//客户端白名单
|
||||
"ClientWhitelist": [ "dev-client-1", "dev-client-2" ],
|
||||
"QuotaExceededResponse": {
|
||||
"Content": "{{\"status\":429,\"msg\":\"访问过于频繁,请稍后重试\",\"success\":false}}",
|
||||
"ContentType": "application/json",
|
||||
"StatusCode": 429
|
||||
},
|
||||
//返回状态码
|
||||
"HttpStatusCode": 429,
|
||||
//通用规则
|
||||
//api规则,结尾一定要带*
|
||||
"GeneralRules": [
|
||||
//{
|
||||
// //端点路径
|
||||
// "Endpoint": "*:/api/*",
|
||||
// //时间段,格式:{数字}{单位};可使用单位:s, m, h, d
|
||||
// "Period": "1m",
|
||||
// //限制数量
|
||||
// "Limit": 60
|
||||
//},
|
||||
//1秒钟只能调用3次
|
||||
{
|
||||
"Endpoint": "*",
|
||||
"Period": "1s",
|
||||
"Limit": 30
|
||||
},
|
||||
//1分钟只能调用300次
|
||||
{
|
||||
"Endpoint": "*",
|
||||
"Period": "1m",
|
||||
"Limit": 1000
|
||||
},
|
||||
//12H只能调用10000
|
||||
{
|
||||
"Endpoint": "*",
|
||||
"Period": "12h",
|
||||
"Limit": 100000
|
||||
},
|
||||
//7天只能调用100000次
|
||||
{
|
||||
"Endpoint": "*",
|
||||
"Period": "7d",
|
||||
"Limit": 1000000
|
||||
}
|
||||
]
|
||||
},
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
|
||||
Reference in New Issue
Block a user