Глобальное ограничение скорости в Discourse

Здравствуйте,

Мы обновили Discourse до версии 2.2.5.
Речь идёт об ограничениях на количество публикаций на одного пользователя в день.

Наши настройки по умолчанию:
DISCOURSE_MAX_REQS_PER_IP_PER_MINUTE : количество запросов с одного IP-адреса в минуту (по умолчанию 200)
DISCOURSE_MAX_REQS_PER_IP_PER_10_SECONDS : количество запросов с одного IP-адреса за 10 секунд (по умолчанию 50)

Мы хотели бы увеличить эти значения до:
DISCOURSE_MAX_REQS_PER_IP_PER_MINUTE : 1000
DISCOURSE_MAX_REQS_PER_IP_PER_10_SECONDS : 500

Как вы думаете, это повлияет на сервер Discourse и его производительность?
Поскольку некоторые пользователи начали жаловаться, что достигают лимита на количество отправленных публикаций.

Спасибо

Я не думаю, что речь идёт об ограничении скорости запросов. Пожалуйста, предоставьте скриншоты, подтверждающие срабатывание лимитера, или уточните детали.

Похоже, что ваши пользователи упираются в лимит количества сообщений для новых пользователей в первый день — это моё предположение.

Пользователь получает ошибку вида:

01:09:42 {"errors":["Вы выполнили это действие слишком много раз. Пожалуйста, подождите 19 секунд перед повторной попыткой."],"error_type":"rate_limit","extras":{"wait_seconds":19}}

Действительно, это ограничения частоты запросов Nginx на IP-адрес. Вы уверены, что не находитесь за обратным прокси-сервером, который некорректно отправляет все IP-адреса клиентов как один и тот же адрес?

Это всегда одни и те же пользователи? Пытаются ли они использовать API?

Если нет, проверьте профили некоторых затронутых пользователей: выглядят ли их IP-адреса корректно? Все ли они одинаковые или похожие? Если да, то это либо неправильно настроенный обратный прокси, либо использование Cloudflare с включенным оранжевым облаком без указания шаблона в YAML-файле.

Да, они используют одного и того же пользователя для генерации большого количества постов в минуту (через пользовательский API-ключ). Однако теперь они жалуются на ограничение по количеству постов, разрешенных для этого пользователя.

Как вы думаете, поможет ли увеличение следующих параметров:
DISCOURSE_MAX_REQS_PER_IP_PER_MINUTE: 1000
DISCOURSE_MAX_REQS_PER_IP_PER_10_SECONDS: 500

У меня была та же проблема. Я хотел использовать API, но возникла такая ошибка


Я хочу иметь возможность устанавливать лимит запросов для конкретного API для администратора.
Не знаю, как изменить глобальный лимит.
Буду признателен, если вы подскажете, где это находится.
Я из Китая, поэтому мой английский не очень хорош, очень извиняюсь.

у нас есть только общий лимит частоты запросов к API, без возможности настраивать лимит для каждого маршрута.

Искомые вами ограничения находятся в настройках сайта:

  • ограничение скорости создания темы
  • ограничение скорости создания поста
  • ограничение скорости создания темы новым пользователем
  • ограничение скорости создания поста новым пользователем

Чтобы изменить эти параметры, перейдите по адресу https://discourse.example.com/admin/site_settings/category/rate_limits?filter=create.