Как изменить глобальную настройку для `ip_10_secs_limit`

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

Недавно мы столкнулись с ошибкой ip_10_secs_limit из-за того, что пользователь использовал iCloud Private Relay, который работает с пулом общих IP-адресов.

Есть ли способ смягчить это ограничение? Я подозреваю, что мы лишь незначительно превышаем этот лимит, и проблем со спамом у нас не возникало.

Я нашёл упоминание в коде и параметр GlobalSetting.max_reqs_per_ip_per_10_seconds, но не смог найти его при поиске в настройках Discourse.

Буду благодарен за любые подсказки!

Мэтт

Показывают ли ваши логи IP-адреса пользователей или адреса iCloud? Если последнее, то вам нужно исправить конфигурацию nginx, чтобы IP-адрес конечного пользователя передавался в Discourse, а не прокси. Темы о запуске Discourse с другими серверами содержат код, который нужно добавить в app.yml для решения этой проблемы. Нужно изменить заголовок X-Forwarded-For, если память мне не изменяет.

Вы можете переопределить эту настройку с помощью переменной окружения:

  DISCOURSE_SETTING_NAME: value

Я не буду пытаться вводить это с телефона.

Спасибо @pfaffman

Возможно, iCloud был ложной тревогой; у меня есть ещё один отчёт от пользователя Chrome, который тоже столкнулся с этой проблемой. Удивительно, что эта проблема возникла только сейчас, несмотря на то, что конфигурация сервера и прочее не менялись (используется версия 2.9.0.beta9), поэтому я задаюсь вопросом, почему это началось.

Вы можете переопределить эту настройку с помощью переменной окружения

То есть я могу установить ip_10_secs_limit как переменную окружения на сервере? Всё ли должно быть в нижнем регистре, нужен ли префикс? Я был сбит с толку, потому что в сообщении об ошибке указывалось ip_10_secs_limit, а в исходном коде Discourse — GlobalSetting.max_reqs_per_ip_per_10_seconds, поэтому я не уверен, какое имя переменной использовать.

Спасибо ещё раз!

Кажется, вы правы насчет IP-адреса; похоже, он определяется как адрес Cloudflare. Похоже, здесь есть некоторые известные проблемы, я изучу этот вопрос!

Тогда вам нужно добавить шаблон Cloudflare. Это ваша настоящая проблема.

DISCOURSE_IP_10_SECS_LIMIT