Включение ограничения скорости в Eve

Я искал возможность включить функцию ограничения скорости с Eve, но нашел очень мало документации или примеров того, как полностью включить ее. Я добавил RATE_LIMIT_GET и другие параметры конфигурации для HTTP-глаголов и передал параметр redis конструктору Eve (). Я запускаю Redis локально на том же сервере. Что еще нужно? Будем очень признательны за любые советы или предложения.


person SamS    schedule 31.01.2020    source источник


Ответы (1)


Моя проблема заключалась в том, что я работал в Docker, а «localhost» (значение по умолчанию при создании экземпляра Redis) НЕ разрешает IP-адрес контейнера. Поэтому, когда я настроил сервер Redis в файле run.py, мне пришлось изменить имя хоста с 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)
person SamS    schedule 02.02.2020