Просмотр исходного кода

feat: able to config rate limit (close #477)

JustSong 2 лет назад
Родитель
Сommit
bd6fe1e93c
2 измененных файлов с 5 добавлено и 2 удалено
  1. 3 0
      README.md
  2. 2 2
      common/constants.go

+ 3 - 0
README.md

@@ -311,6 +311,9 @@ graph LR
     + 如果你遇到了数据库连接数过多的问题,可以尝试启用该选项。
 11. `BATCH_UPDATE_INTERVAL=5`:批量更新聚合的时间间隔,单位为秒,默认为 `5`。
     + 例子:`BATCH_UPDATE_INTERVAL=5`
+12. 请求频率限制:
+    + `GLOBAL_API_RATE_LIMIT`:全局 API 速率限制(除中继请求外),单 ip 三分钟内的最大请求数,默认为 `180`。
+    + `GLOBAL_WEB_RATE_LIMIT`:全局 Web 速率限制,单 ip 三分钟内的最大请求数,默认为 `60`。
 
 ### 命令行参数
 1. `--port <port_number>`: 指定服务器监听的端口号,默认为 `3000`。

+ 2 - 2
common/constants.go

@@ -114,10 +114,10 @@ var (
 // All duration's unit is seconds
 // Shouldn't larger then RateLimitKeyExpirationDuration
 var (
-	GlobalApiRateLimitNum            = 180
+	GlobalApiRateLimitNum            = GetOrDefault("GLOBAL_API_RATE_LIMIT", 180)
 	GlobalApiRateLimitDuration int64 = 3 * 60
 
-	GlobalWebRateLimitNum            = 60
+	GlobalWebRateLimitNum            = GetOrDefault("GLOBAL_WEB_RATE_LIMIT", 60)
 	GlobalWebRateLimitDuration int64 = 3 * 60
 
 	UploadRateLimitNum            = 10