簡體   English   中英

在 Eve 中啟用速率限制

[英]Enabling rate limiting in Eve

我一直在尋找與 Eve 一起啟用速率限制功能,但幾乎沒有找到有關如何完全啟用它的文檔或示例。 我已經為 HTTP 動詞添加了 RATE_LIMIT_GET 和其他配置選項,並將 redis 參數傳遞給了 Eve() 構造函數。 我也在同一台服務器上本地運行 redis。 還有什么需要的嗎? 任何提示或建議將不勝感激。

我的問題原來是我在 Docker 中運行,並且“localhost”(實例化 Redis 時的默認值)無法解析為容器的 IP 地址。 因此,當我在 run.py 文件中配置 Redis 服務器時,我必須將主機名從“localhost”更改為容器的 IP 地址。 最后,由於其他原因,我讓 Redis 在另一個名為“redis”的容器中運行,因此我在代碼中使用了該 Redis 實例,但使用了一個單獨的數據庫:

redis_svr = redis.Redis(host='redis', db=1)
print('Redis server = ' + str(redis_svr), file=sys.stderr)
app = Eve(auth=BearerAuth, static_folder='templates', redis=redis_svr)

在 settings.py 文件中,我添加了這些選項,並且在 redis db 工作的情況下,速率限制也有效:

#Rate Limit requests per 60 seconds
RATE_LIMIT_POST = (12, 60)
RATE_LIMIT_PATCH = (12, 60)
RATE_LIMIT_DELETE = (12, 60)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM