From 34c15ecf088f0c68a498cbec36581cbaf0d435cb Mon Sep 17 00:00:00 2001 From: bot-backend Date: Sat, 12 Sep 2026 14:19:58 +0300 Subject: [PATCH] =?UTF-8?q?feat(ops):=20=D0=BC=D0=B0=D1=80=D1=88=D1=80?= =?UTF-8?q?=D1=83=D1=82=20=D1=80=D0=B5=D1=82=D1=80=D0=B0=D0=BD=D1=81=D0=BB?= =?UTF-8?q?=D1=8F=D1=82=D0=BE=D1=80=D0=B0=20Telegram=20=D0=BD=D0=B0=20metr?= =?UTF-8?q?ics.gendsgn.ru?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Без маршрута сервис tg-relay недостижим снаружи и настройка TELEGRAM_RELAY_BASE_URL на продуктовом хосте ни к чему не приводит. Путь несёт токен бота, поэтому помечен log_skip: иначе он осядет в файловом логе сайта и в stdout-копии, которую читает Alloy (#3154). Таймаут ответа поднят до 80с — getUpdates висит long-poll'ом до ~40с, дефолтного не хватает. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01JY6iWDnGDthdvsMWgK1BMG --- caddy/sites/infra.caddy | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/caddy/sites/infra.caddy b/caddy/sites/infra.caddy index 4d22fa65..fe523795 100644 --- a/caddy/sites/infra.caddy +++ b/caddy/sites/infra.caddy @@ -123,6 +123,26 @@ metrics.gendsgn.ru { reverse_proxy alert-ack:8080 } + # Ретранслятор Bot API продукта (#3471). Путь от Selectel до + # api.telegram.org теряет примерно каждый четвёртый короткий запрос, тот же + # замер с Beget в те же минуты — чистый. Поэтому продуктовый бот ходит в + # Telegram отсюда, а не напрямую. + # + # Путь содержит токен бота (/tg-relay/bot/) — он не должен + # осесть ни в файловом логе сайта, ни в stdout-копии (#3154), поэтому + # запрос помечен log_skip. + @tg_relay path /tg-relay/* + log_skip @tg_relay + + handle_path /tg-relay/* { + reverse_proxy tg-relay:8080 { + # getUpdates — long-poll до ~40с, дефолтный таймаут ответа короче. + transport http { + response_header_timeout 80s + } + } + } + # Вход ОДИН — собственный вход Grafana (#3078). Внешний basic_auth снят по # решению владельца: два запроса пароля подряд мешали работе, а Grafana имеет # собственную аутентификацию с ролями и `GF_USERS_ALLOW_SIGN_UP=false`.