Включение ограничения скорости в канун - PullRequest
1 голос
/ 31 января 2020

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

1 Ответ

0 голосов
/ 02 февраля 2020

Моя проблема оказалась в том, что я работал в 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)
...