MAATRIX / Блог / Traefik на VPS: reverse proxy с авто-SSL

Traefik на VPS: reverse proxy с авто-SSL

Блог MAATRIX · 2026-07-07

Traefik сам находит ваши контейнеры, раздаёт им домены и выпускает SSL-сертификаты Let's Encrypt без единой ручной команды. Настроил один раз — новые сервисы подхватываются автоматически.

Почему Traefik, а не Nginx вручную

['Классический Nginx требует писать конфиг под каждый новый сайт и вручную гонять certbot за сертификатами. Traefik работает иначе: он читает метки (labels) прямо у контейнеров Docker и на лету строит маршруты. Добавили сервис с нужными labels — домен и HTTPS появляются сами.', "Для проекта с несколькими приложениями на одном VPS это экономит часы. Тем более что зарубежный сервер MAATRIX с оплатой из России позволяет спокойно выпускать сертификаты Let's Encrypt, которые требуют доступности домена извне."]

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS под Traefik

Базовый docker-compose для Traefik

['Traefik сам запускается контейнером и слушает 80/443. Он общается с Docker через сокет и хранит сертификаты в томе.', '
services:\n  traefik:\n    image: traefik:v3.1\n    restart: always\n    command:\n      - "--providers.docker=true"\n      - "--providers.docker.exposedbydefault=false"\n      - "--entrypoints.web.address=:80"\n      - "--entrypoints.websecure.address=:443"\n      - "--certificatesresolvers.le.acme.tlschallenge=true"\n      - "--certificatesresolvers.le.acme.email=you@example.com"\n      - "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json"\n    ports:\n      - "80:80"\n      - "443:443"\n    volumes:\n      - /var/run/docker.sock:/var/run/docker.sock:ro\n      - le:/letsencrypt\nvolumes:\n  le:
', 'Флаг exposedbydefault=false критичен: без него Traefik попытается опубликовать вообще все контейнеры. Мы явно помечаем только нужные.']

Подключаем сервис с автоматическим HTTPS

['Любое приложение получает домен и SSL через labels. Никаких портов наружу — Traefik сам достучится до контейнера по внутренней сети.', '
  whoami:\n    image: traefik/whoami\n    labels:\n      - "traefik.enable=true"\n      - "traefik.http.routers.whoami.rule=Host(`app.example.com`)"\n      - "traefik.http.routers.whoami.entrypoints=websecure"\n      - "traefik.http.routers.whoami.tls.certresolver=le"
', 'Как только DNS домена app.example.com указывает на IP вашего VPS, Traefik выпустит сертификат и начнёт отдавать сайт по HTTPS. Проверить выпуск можно по логам: docker compose logs traefik | grep -i acme.']

Редирект HTTP→HTTPS и дашборд

['Чтобы весь трафик уходил на HTTPS, добавьте глобальный редирект в command:', '
      - "--entrypoints.web.http.redirections.entrypoint.to=websecure"\n      - "--entrypoints.web.http.redirections.entrypoint.scheme=https"
', 'Встроенный дашборд показывает все роутеры и сервисы. Включать его на публичном порту опасно — оставьте только за базовой авторизацией или SSH-туннелем.', 'Traefik умеет middleware — промежуточные обработчики запроса. Самый частый — basic-auth для закрытия админок. Генерируем хеш пароля и вешаем его на роутер labels:', '
htpasswd -nb admin StrongPass\n# результат: admin:$apr1$....\n# в labels сервиса:\n# traefik.http.middlewares.auth.basicauth.users=admin:$apr1$....\n# traefik.http.routers.dashboard.middlewares=auth
', 'Другие полезные middleware — ограничение частоты запросов (rateLimit), добавление security-заголовков и белый список IP. Всё это описывается labels, без правки конфигов Nginx.']

Частые ошибки

["
  • acme.json с правами 777 — Traefik откажется его читать. Файл создаётся сам в томе, не трогайте права руками
  • DNS ещё не прописан — Let's Encrypt не выпустит сертификат, пока домен не резолвится на VPS. Проверяйте: dig +short app.example.com
  • Забыли общую сеть — Traefik и приложение должны быть в одной docker-сети, иначе прокси не найдёт контейнер
", "Пока идёт отладка, Let's Encrypt имеет лимиты на число попыток — используйте staging-резолвер, чтобы не упереться в них. На root-доступе MAATRIX вы полностью управляете и портами 80/443, и DNS-записями домена.", 'Один Traefik легко обслуживает десятки доменов на одном VPS: каждый новый сайт — это просто ещё один контейнер с нужными labels. Никакой правки центрального конфига, никакого перезапуска прокси. Именно поэтому Traefik стал стандартом для мультисервисных Docker-хостов: добавление проекта занимает секунды, а SSL приезжает автоматически.']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS под Traefik

Частые вопросы

Нужен ли отдельный Nginx рядом с Traefik?

Нет. Traefik сам работает reverse proxy и терминирует SSL. Nginx может остаться внутри контейнера приложения, но наружу смотрит Traefik.

Traefik умеет wildcard-сертификаты?

Да, но для *.example.com нужен DNS-challenge и токен вашего DNS-провайдера. Для одиночных доменов достаточно tlsChallenge из примера.

Сработает ли авто-SSL на сервере в UK или US?

Да. Let's Encrypt глобален, а локации MAATRIX в UK и США полностью доступны извне для валидации домена.