aLinux
(aLinux )
23.Август.2026 13:42:39
1
привет
я использую 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 касается одного клиента, а не всех посетителей?
Если я не ошибаюсь, да, это влияет только на клиента, отправляющего поток запросов.
aLinux
(aLinux )
23.Август.2026 14:28:00
3
Мне стоит это игнорировать или мне нужно что-то изменить, чтобы увеличить лимит?
Если вы хотите настроить пороговые значения, см.:
Discourse поставляется с 3 различными глобальными ограничениями частоты запросов, которые могут быть настроены администраторами сайта.
Глобальные ограничения частоты запросов по IP
Эти ограничения применяются к каждому уникальному IP-адресу, обращающемуся к приложению Discourse. (файлы, отдаваемые напрямую из файловой системы или CDN, исключены)
По умолчанию это ограничение включено, вы можете отключить его или установить режим только для отчета.
DISCOURSE_MAX_REQS_PER_IP_MODE : по умолчанию b…
pfaffman
(Jay Pfaffman)
24.Август.2026 13:58:49
5
Скорее всего, это означает, что все запросы выглядят как исходящие с одного и того же IP-адреса, и многие пользователи получают ошибки 429. Перейдите в admin/users и посмотрите, какой IP-адрес вы видите у себя и у другого пользователя. Если они совпадают, вам нужно настроить систему так, чтобы реальный IP-адрес передавался в Discourse.
aLinux
(aLinux )
24.Август.2026 15:25:45
6
только что проверил, и у меня тот же внутренний IP, что и у других пользователей!
как мне это исправить?
Вы используете Cloudflare?
Я тоже прохожу эту игру
aLinux
(aLinux )
24.Август.2026 15:41:32
8
да, но проблема в том, что у всех пользователей один и тот же 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-адреса
pfaffman
(Jay Pfaffman)
24.Август.2026 16:04:29
9
Если вы используете Cloudflare, вам нужен шаблон Cloudflare. Похоже, что каноническую тему по этой теме найти невозможно, поэтому попробуйте https://ask.discourse.com/ — мне удалось получить сгенерированное ИИ сообщение о том, что делать, но не о том, где найти обсуждение этого вопроса. Грустно, что ИИ находит решение, а поиск — нет.
aLinux
(aLinux )
24.Август.2026 16:06:21
10
ну.. да, спросил у chatgpt, сделал резервную копию и потом проверил. пока всё хорошо
pfaffman
(Jay Pfaffman)
24.Август.2026 16:19:29
11
Я всегда бы использовал https://ask.discourse.com/ , а не универсальный ИИ (если вы не активно пишете код и ИИ не имеет доступа к коду Discourse).
Имеется в виду эта часть?
Discourse:
Для Cloudflare добавьте cloudflare.template.yml в ваш файл app.yml.
aLinux
(aLinux )
25.Август.2026 10:37:37
13
Для 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.