429 too many requests — это хорошо или плохо? (помогите)

привет

я использую uptimerobot, и несколько раз в неделю получаю ошибку 429 на протяжении 1–5 минут, но именно это я вижу в логах.

Причина
HTTP 429 - Too Many Requests
Начало инцидента
2026-08-23 10:42:58
Завершение
2026-08-23 10:48:05
Длительность
5 минут 7 секунд

я хостю сервис самостоятельно, discourse работает через reverse proxy от hestiacp

log.txt (55.8 KB) вот лог

хочу узнать, эта ошибка 429 затрагивала всех пользователей или только некоторых?

у меня стандартная установка в docker, открыты только порт 80 и 4 воркера.

8 ГБ ОЗУ и 8 ядер

обновление: провёл тест на своём ПК, открывая 20–30 постов, пока не получил 429, а на телефоне через другую сеть всё работало нормально. это подтверждает, что 429 касается одного клиента, а не всех посетителей?

Если я не ошибаюсь, да, это влияет только на клиента, отправляющего поток запросов.

Мне стоит это игнорировать или мне нужно что-то изменить, чтобы увеличить лимит?

Если вы хотите настроить пороговые значения, см.:

Скорее всего, это означает, что все запросы выглядят как исходящие с одного и того же IP-адреса, и многие пользователи получают ошибки 429. Перейдите в admin/users и посмотрите, какой IP-адрес вы видите у себя и у другого пользователя. Если они совпадают, вам нужно настроить систему так, чтобы реальный IP-адрес передавался в Discourse.

только что проверил, и у меня тот же внутренний IP, что и у других пользователей! :frowning:

как мне это исправить?

Вы используете Cloudflare?

Я тоже прохожу эту игру :slight_smile:

да, но проблема в том, что у всех пользователей один и тот же IP..

добавил это в app.yml и сейчас тестирую

run:

  • replace:
    filename: /etc/nginx/conf.d/discourse.conf
    from: “server {”
    to: |
    server {
    set_real_ip_from 192.168.1.250;
    real_ip_header X-Forwarded-For;
    real_ip_recursive on;
  • exec: echo “Beginning of custom commands”
  • exec: echo “End of custom commands”

только что протестировал с компьютера и мобильного телефона

у меня теперь правильные IP-адреса :smiley:

Если вы используете Cloudflare, вам нужен шаблон Cloudflare. Похоже, что каноническую тему по этой теме найти невозможно, поэтому попробуйте https://ask.discourse.com/ — мне удалось получить сгенерированное ИИ сообщение о том, что делать, но не о том, где найти обсуждение этого вопроса. Грустно, что ИИ находит решение, а поиск — нет. :crying_cat:

ну.. да, спросил у chatgpt, сделал резервную копию и потом проверил. пока всё хорошо :smiley:

Я всегда бы использовал https://ask.discourse.com/, а не универсальный ИИ (если вы не активно пишете код и ИИ не имеет доступа к коду Discourse).

Имеется в виду эта часть?

  1. Для Cloudflare добавьте cloudflare.template.yml в ваш файл app.yml.

это альтернатива решению, которое я нашел выше?

Если вы используете Cloudflare вместе с Discourse, вам следует добавить это. Думаю, это был тот шаблон, о котором упоминал @pfaffman?

Думаю, это зависит от вашей конфигурации.

У меня:

             ┌─────────────────────────┐
             │       Cloudflare        │
             │ WAF / CDN / DDoS / SSL  │
             └────────────┬────────────┘
                          │
                   real client IP
                          │
                          ▼
             ┌─────────────────────────┐
             │   CentminMod Nginx      │
             │                         │
             │ cloudflare.conf         │
             │ restores real IP        │
             └────────────┬────────────┘
                          │
                   X-Forwarded-For
                   = real client IP
                          │
                          ▼
             ┌─────────────────────────┐
             │    Discourse Docker     │
             │                         │
             │ trusted proxy           │
             │ 172.16.0.0/12           │
             └─────────────────────────┘

Если я использую шаблон, IP-адрес меняется на Docker-IP, а не на внешний. Я передаю его в nginx.