Traefik
Reverse-proxy и балансировщик, который сам строит маршруты по docker-лейблам и выписывает TLS-сертификаты Let's Encrypt. Развернули v3.7.3 на тарифе CPU2-RAM4-DISK50, замерили потребление и проверили авто-дискавери на живом бэкенде.
Вердикт
- docker-окружению с частыми деплоями: новый сервис подхватывается без перезапуска прокси
- тем, кому нужен автоматический TLS через Let's Encrypt из коробки
- как единая точка входа для нескольких self-hosted сервисов на одном сервере
- одному статическому сайту - проще nginx или Caddy
- там, где нужен максимум производительности на отдаче статики
- команде, не готовой к модели роутеры/сервисы/middleware
Что это и какую задачу решает
Traefik - это edge-router: принимает входящие HTTP и TCP запросы и раздает их вашим сервисам. Главное отличие от классического nginx в том, что Traefik сам обнаруживает сервисы. Вы запускаете контейнер с парой docker-лейблов, и маршрут появляется автоматически, без правки конфигов и перезапуска прокси.
Из коробки он умеет автоматический TLS через Let's Encrypt (ACME), веб-дашборд со схемой маршрутизации, middleware для аутентификации, заголовков, rate-limit и редиректов. Источником конфигурации может быть Docker, Kubernetes, Consul, файлы - так называемые провайдеры. Лицензия MIT, ядро полностью бесплатное.
Чем отличается от платных решений
Сравнение с управляемыми балансировщиками облаков и проприетарными прокси по тому, что влияет на выбор.
| Параметр | Traefik | Managed LB / Nginx Plus |
|---|---|---|
| Модель цены | бесплатно, MIT | по трафику или подписка |
| Авто-дискавери сервисов | да, по лейблам | обычно вручную |
| Авто-TLS (Let's Encrypt) | встроен | отдельная настройка |
| Где работает | ваш сервер, без vendor lock-in | привязка к облаку/вендору |
| Дашборд маршрутов | из коробки | зависит |
Тех-стек и архитектура
Traefik - это один статический бинарь на Go, поэтому образ и потребление памяти небольшие. В нашем тесте это один контейнер. Модель конфигурации строится из четырех понятий: entrypoints (порты, на которых слушаем, например :80 и :443), routers (правила, по которым запрос попадает в сервис, например Host или PathPrefix), services (куда проксировать) и middlewares (преобразования запроса по пути).
Сервисы и правила Traefik берет у провайдеров. В docker-окружении это docker-лейблы на контейнерах: добавили лейбл с правилом маршрутизации - роутер появился. Для боевого TLS подключается провайдер сертификатов ACME, который сам получает и продлевает Let's Encrypt.
Минимальная конфигурация
Реальные требования против официального минимума.
| Официальный минимум RAM | десятки MiB |
| Реально в простое (наш замер) | ~13.6 MiB |
| Образ на диске | 244 MB |
| Рекомендуем тариф | CPU2-RAM4-DISK50 |
| Тариф Fatmetal | CPU2-RAM4-DISK50 - 500 руб/мес |
Важно: сам Traefik почти ничего не ест - тарифа CPU2-RAM4-DISK50 за 500 руб/мес хватает с запасом. Память на сервере уйдет на сервисы за прокси, а не на сам прокси.
Развертывание на Fatmetal
Базовый путь - Fatmetal Cloud Server + Ubuntu 24.04 + Docker из маркетплейса.
Создать VM
Тариф CPU2-RAM4-DISK50, Ubuntu 24.04, приложение Docker из маркетплейса.
Запустить Traefik
docker network create web docker run -d --name traefik --network web \ -p 80:80 -p 127.0.0.1:8080:8080 \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ traefik:v3.7.3 \ --api.dashboard=true \ --providers.docker=true \ --providers.docker.exposedbydefault=false \ --entrypoints.web.address=:80Добавить сервис с лейблами
docker run -d --name whoami --network web \ -l traefik.enable=true \ -l 'traefik.http.routers.whoami.rule=Host(`whoami.local`)' \ traefik/whoamiМаршрут появляется сам. Проверка:
curl -H 'Host: whoami.local' http://localhost/вернет ответ бэкенда.
Что измерили после запуска
Цифры со свежей установки на тарифе CPU2-RAM4-DISK50, без нагрузки.
| Скачивание образа | 9 c (~53 MB сжатым слоем) |
| Старт до рабочего дашборда | 6 c |
| RAM в простое (Traefik) | ~13.6 MiB |
| Образ на диске | 244 MB |
| Роутеров в дашборде | 3 (api, dashboard, whoami) |
Главное: сам прокси в простое держит около 14 MiB и стартует за считаные секунды. Это один из самых легких компонентов в стеке - ресурсы сервера почти целиком остаются вашим сервисам.
Проверено на версии v3.7.3 (Go 1.25), июнь 2026. На новых версиях результаты могут отличаться.
Где может сломаться
Реальные грабли, на которые стоит обратить внимание при запуске.
Insecure-дашборд. Флаг --api.insecure=true удобен для теста, но в проде открывает дашборд без пароля. На боевом сервере дашборд закрывают basic-auth middleware и не публикуют наружу.
Доступ к docker.sock. Провайдер Docker читает сокет демона. Монтируйте его только в режиме чтения (:ro) и помните, что доступ к сокету - это фактически root на хосте.
Причина. Запрос пришел на entrypoint, но ни один роутер не совпал: либо у контейнера нет лейбла traefik.enable=true, либо правило Host не то.
Решение. Проверьте лейблы и список роутеров в дашборде или через curl localhost:8080/api/http/routers.
Безопасность и обновления
Security advisories выходят на GitHub проекта. Перед продом закройте дашборд аутентификацией, включите TLS на entrypoint :443 и настройте ACME для автоматических сертификатов. Обновление сводится к смене тега образа:
docker pull traefik:v3.7.3 && docker rm -f traefik && docker run -d ... traefik:v3.7.3
Конфигурация Traefik декларативна (флаги, файл или лейблы), поэтому бэкап - это бэкап вашего compose-файла и статического конфига. Сертификаты ACME лежат в смонтированном acme.json - его тоже стоит сохранять.
Связь с другими стеками
- Сервисы за прокси - Traefik удобно ставить единой точкой входа перед Plausible, Twenty CRM и другими self-hosted сервисами на одном сервере.
- Мониторинг - Traefik экспортит метрики в формате Prometheus, дальше Grafana для дашбордов.
- Альтернативы - если динамики мало, ту же роль закроют Caddy или Nginx Proxy Manager.
Когда это НЕ ваш выбор
Один статический сайт
Если у вас один сайт без динамики, авто-дискавери не нужен - проще и быстрее поднять nginx или Caddy.
Максимум производительности на статике
На голой отдаче статики и предельных RPS специализированные nginx или HAProxy показывают себя лучше.
Окружение без контейнеров
Главная сила Traefik - провайдеры (Docker, Kubernetes). Без них вы теряете именно то, ради чего его берут.
Частые вопросы
Сколько Traefik ест в простое?
В нашем замере около 13.6 MiB RAM - это один из самых легких компонентов стека.
Хватит ли тарифа CPU2-RAM4-DISK50?
Самому прокси хватает с запасом. CPU2-RAM4-DISK50 за 500 руб/мес покрывает Traefik плюс несколько сервисов за ним.
Можно сразу в продакшен?
Перед продом закройте дашборд аутентификацией, включите TLS на :443 и настройте ACME. Insecure-дашборд из примера - только для теста.
Нужен ли Docker?
Нет, Traefik работает и с Kubernetes, Consul или файловым конфигом. Но именно с Docker авто-дискавери раскрывается проще всего.
Как обновлять?
Сменить тег образа и пересоздать контейнер. Конфигурация декларативна, миграций состояния нет.
Чем отличается от nginx?
Traefik сам обнаруживает сервисы по лейблам и сам выписывает TLS. Nginx быстрее на статике, но требует ручного конфига.
Какая лицензия?
MIT, ядро полностью бесплатное и для коммерческого использования. Платный только облачный Traefik Hub.
Итог
Traefik v3.7.3 - легкий и удобный reverse-proxy для docker-окружений: ~14 MiB в простое, старт за секунды, маршруты по лейблам без перезапуска и авто-TLS из коробки. Берите его, когда на сервере несколько сервисов и частые деплои; для одного статического сайта достаточно nginx.
Этот стек у нас запущен на тарифе CPU2-RAM4-DISK50. Нашли баг в гайде - напишите, поправим в течение дня.