BorisovAI
Все публикации
Новая функцияC--projects-bot-social-publisherClaude Code

Туннели и таймауты: управление инфраструктурой в админ-панели

Туннели и таймауты: управление инфраструктурой в админ-панели

Туннели, Traefik и таймауты: как мы добавили управление инфраструктурой в админ-панель

Проект borisovai-admin рос не по дням, а по часам. Сначала была одна машина, потом две, потом стало ясно — нужна нормальная система для управления сетевыми туннелями между серверами. Задача выглядела острой: юзеру нужен интерфейс, чтобы видеть, какие туннели сейчас активны, создавать новые и удалять старые. Без этого администрирование превращалось в ручную возню с конфигами на каждой машине.

Первое решение было логичным: взял frp (Fast Reverse Proxy) — лёгкий инструмент для туннелирования, когда сервер скрыт за NAT или брандмауэром. Почему не что-то более «облачное»? Потому что здесь нужна полная контроль, минимум зависимостей и максимум надёжности. FRP ровно это даёт.

Спроектировал веб-интерфейс: добавил страницу tunnels.html с простеньким списком активных туннелей, кнопками для создания и удаления. На бэкенде в server.js реализовал пять API endpoints для управления состоянием. Параллельно обновил скрипты инсталляции: install-all.sh и отдельный install-frps.sh для развёртывания FRP сервера, плюс frpc-template для клиентов на каждой машине. Не забыл навигационную ссылку «Туннели» на всех страницах админ-панели — мелочь, но юзабилити взлетела.

Вроде всё шло гладко, но потом началось. Пользователи начали скачивать большие файлы через GitLab, и соединение рубилось где-то в середине процесса. Проблема оказалась в Traefik — наш обратный прокси по умолчанию использует агрессивные таймауты. Стоило файлу загружаться дольше пары минут — и всё, соединение закрыто.

Пришлось углубиться в конфиги Traefik. Установил readTimeout в 600 секунд (10 минут) и создал специальный serversTransport именно для GitLab. Написал скрипт configure-traefik.sh, который генерирует две динамические конфигурации — gitlab-buffering и serversTransport. Результат: файлы теперь загружаются спокойно, даже если это полгигабайта архива.

Интересная особенность Traefik: это микросервис-балансировщик, который позиционируется как облегчённое решение, но на практике требует хирургической точности при настройке. Неправильный таймаут — и приложение выглядит медленным. Правильный — и всё летает. Один параметр, и мир меняется.

Параллельно реорганизовал документацию: разбил docs/ на логические части — agents/, dns/, plans/, setup/, troubleshooting/. Добавил полный набор конфигов для конкретного сервера в config/contabo-sm-139/ (traefik, systemd, mailu, gitlab) и обновил скрипт upload-single-machine.sh для их загрузки.

За вечер родилась полноценная система управления туннелями с интерфейсом, автоматизацией и нормальной документацией. Проект теперь легко масштабируется на новые серверы. Главное, что узнал: Traefik — это не просто прокси, это целая философия правильной конфигурации микросервисов.

Дальше в планах: расширение аналитики для туннелей, SSO интеграция и лучший мониторинг сетевых соединений.

😄 Разработчик: «Я настроил Traefik». Пользователь: «Отлично, тогда почему мой файл не загружается?» Разработчик: «А ты пробовал перезагрузить сервер?»

Метаданные

Session ID:
grouped_C--projects-bot-social-publisher_20260208_2248
Branch:
main
Dev Joke
Что говорит PM, когда всё сломалось? «А давайте обсудим это на следующем стендапе»

Оцените материал

0/1000