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 ships with 3 different global rate limits that can be configured by site admins.
Global per-ip rate limits
These limits apply to every unique IP address that hits the Discourse application. (files that are served directly from the filesystem or the CDN are excluded)
By default this rate limit is enabled, you may disable it or set it to a reporting mode.
DISCOURSE_MAX_REQS_PER_IP_MODE : default block, this rate limit applies out of the box. (other options are warn, warn+block, and n…
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.