前夕的启用速率限制

问题描述 投票:1回答:1

我一直在寻求通过Eve启用速率限制功能,但是几乎没有关于如何完全启用它的文档或示例。我为HTTP动词添加了RATE_LIMIT_GET和其他配置选项,并将redis参数传递给Eve()构造函数。我也在同一台服务器上本地运行Redis。还有什么需要的吗?任何提示或建议,将不胜感激。

python rate-limiting eve
1个回答
0
投票

我的问题原来是我在Docker中运行,并且'localhost'(实例化Redis的默认值)无法解析为容器的IP地址。因此,当我在run.py文件中配置Redis服务器时,我不得不将主机名从“ localhost”更改为容器的IP地址。最后,由于其他原因,我让Redis在另一个名为'redis'的容器中运行,因此我在代码中使用了Redis实例,但是使用了一个单独的DB:

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)
© www.soinside.com 2019 - 2024. All rights reserved.