// Blog

Как установить и настроить Traefik как обратный прокси на VPS Linux: полное руководство — CLIQHOST

25 октября 2026 г. · by Alex M.

Как установить и настроить Traefik как обратный прокси на VPS Linux: полное руководство — CLIQHOST

Если вы запускаете несколько веб-приложений на одном VPS NVMe и хотите управлять трафиком, SSL-сертификатами и маршрутизацией без утомительных ручных настроек Nginx — Traefik станет вашим незаменимым инструментом.

Traefik — это современный облачный обратный прокси и балансировщик нагрузки, созданный для экосистем Docker и Kubernetes. Он автоматически обнаруживает контейнеры, генерирует SSL-сертификаты через Let's Encrypt и обновляет конфигурацию без перезапуска. В этом руководстве мы пройдём полный цикл установки и настройки Traefik на Ubuntu 22.04.


Что такое Traefik и чем он лучше Nginx?

Traefik кардинально отличается от традиционных обратных прокси:

  • Автообнаружение: Traefik сам находит запущенные контейнеры Docker и настраивает маршруты
  • Автоматический SSL: интеграция с Let's Encrypt «из коробки» без certbot
  • Динамическая конфигурация: правила обновляются на лету без даунтайма
  • Встроенный дашборд: веб-интерфейс для мониторинга маршрутов и сервисов
  • Поддержка middleware: rate limiting, сжатие, заголовки безопасности и многое другое

Если у вас VPS SSD с несколькими Docker-контейнерами (WordPress, Nextcloud, собственные приложения), Traefik — идеальный оркестратор трафика.


Предварительные требования

Перед началом убедитесь, что у вас есть:

  • VPS с Ubuntu 22.04 (рекомендуется VPS NVMe от CLIQHOST)
  • Root-доступ или пользователь с sudo
  • Установленные Docker и Docker Compose
  • Домен с DNS, указывающим на IP вашего сервера
  • Открытые порты 80 и 443 в файрволе

Установка Docker

apt update && apt upgrade -y
apt install -y ca-certificates curl gnupg
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
  > /etc/apt/sources.list.d/docker.list
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

Проверка:

docker --version
docker compose version

Шаг 1: Подготовка структуры директорий

Создайте рабочую директорию:

mkdir -p /opt/traefik/data
cd /opt/traefik

Создайте файл для хранения SSL-сертификатов:

touch /opt/traefik/data/acme.json
chmod 600 /opt/traefik/data/acme.json

Важно: права 600 на acme.json обязательны. Traefik не запустится, если файл доступен другим пользователям.


Шаг 2: Создание файла конфигурации traefik.yml

nano /opt/traefik/data/traefik.yml
api:
  dashboard: true
  insecure: false

entryPoints:
  web:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: websecure
          scheme: https
  websecure:
    address: ":443"

certificatesResolvers:
  letsencrypt:
    acme:
      email: [email protected]
      storage: /data/acme.json
      httpChallenge:
        entryPoint: web

providers:
  docker:
    endpoint: "unix:///var/run/docker.sock"
    exposedByDefault: false
    network: traefik-net

log:
  level: INFO

accessLog: {}

Ключевые параметры:

  • redirections: автоматически перенаправляет HTTP на HTTPS
  • exposedByDefault: false: контейнеры не публикуются без явной метки
  • network: traefik-net: выделенная Docker-сеть для Traefik

Шаг 3: Docker-сеть и docker-compose.yml

Создайте внешнюю Docker-сеть:

docker network create traefik-net

Создайте файл docker-compose.yml:

nano /opt/traefik/docker-compose.yml
version: '3.8'

services:
  traefik:
    image: traefik:v3.0
    container_name: traefik
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /opt/traefik/data/traefik.yml:/traefik.yml:ro
      - /opt/traefik/data/acme.json:/data/acme.json
    networks:
      - traefik-net
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.dashboard.rule=Host(`traefik.vashomain.com`)"
      - "traefik.http.routers.dashboard.entrypoints=websecure"
      - "traefik.http.routers.dashboard.tls.certresolver=letsencrypt"
      - "traefik.http.routers.dashboard.service=api@internal"
      - "traefik.http.routers.dashboard.middlewares=auth"
      - "traefik.http.middlewares.auth.basicauth.users=admin:$$apr1$$xyz..."

networks:
  traefik-net:
    external: true

Генерация пароля для дашборда

apt install -y apache2-utils
htpasswd -nb admin MoiSecretnyiParol123
# Пример вывода: admin:$apr1$8Kv...Hash

В docker-compose.yml каждый символ $ замените на $$ (экранирование Docker Compose).


Шаг 4: Запуск Traefik

cd /opt/traefik
docker compose up -d

Проверка работы:

docker ps
docker logs traefik --tail=50

Дашборд будет доступен по адресу https://traefik.vashomain.com — сертификат выдаётся автоматически за несколько секунд.


Шаг 5: Добавление первого приложения

Покажем, как подключить Nginx-контейнер к Traefik:

mkdir -p /opt/apps/mysite
nano /opt/apps/mysite/docker-compose.yml
version: '3.8'

services:
  mysite:
    image: nginx:alpine
    container_name: mysite
    restart: unless-stopped
    networks:
      - traefik-net
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.mysite.rule=Host(`site.vashomain.com`)"
      - "traefik.http.routers.mysite.entrypoints=websecure"
      - "traefik.http.routers.mysite.tls.certresolver=letsencrypt"

networks:
  traefik-net:
    external: true
cd /opt/apps/mysite
docker compose up -d

Traefik автоматически обнаружит контейнер, выпустит SSL-сертификат для site.vashomain.com и направит трафик — без перезапуска и изменения конфигурации Traefik.


Шаг 6: Полезные middleware в Traefik

Middleware позволяют добавить дополнительный функционал к маршрутам:

Rate Limiting (ограничение запросов)

labels:
  - "traefik.http.middlewares.ratelimit.ratelimit.average=100"
  - "traefik.http.middlewares.ratelimit.ratelimit.burst=50"
  - "traefik.http.routers.mysite.middlewares=ratelimit"

Заголовки безопасности

labels:
  - "traefik.http.middlewares.secheaders.headers.stsSeconds=31536000"
  - "traefik.http.middlewares.secheaders.headers.stsIncludeSubdomains=true"
  - "traefik.http.middlewares.secheaders.headers.contentTypeNosniff=true"
  - "traefik.http.middlewares.secheaders.headers.browserXssFilter=true"
  - "traefik.http.routers.mysite.middlewares=secheaders"

Сжатие (gzip)

labels:
  - "traefik.http.middlewares.compress.compress=true"
  - "traefik.http.routers.mysite.middlewares=compress"

Можно объединять несколько middleware через запятую:

- "traefik.http.routers.mysite.middlewares=ratelimit,secheaders,compress"

Шаг 7: Логирование и мониторинг

Просмотр логов в реальном времени:

docker logs traefik -f

Для сохранения логов в файл добавьте в traefik.yml:

log:
  level: WARNING
  filePath: /data/traefik.log

accessLog:
  filePath: /data/access.log
  bufferingSize: 100

Traefik нативно поддерживает экспорт метрик для Prometheus и Grafana:

metrics:
  prometheus:
    entryPoint: metrics

entryPoints:
  metrics:
    address: ":8082"

Это позволяет строить полноценные дашборды мониторинга для всего вашего стека.


Шаг 8: Обновление и обслуживание

Обновление Traefik до новой версии:

cd /opt/traefik
docker compose pull
docker compose up -d

Проверка текущей версии:

docker exec traefik traefik version

Перед крупными обновлениями делайте резервную копию сертификатов:

cp /opt/traefik/data/acme.json /opt/traefik/data/acme.json.bak

Traefik vs Nginx Proxy Manager: сравнение

Характеристика Traefik Nginx Proxy Manager
Автообнаружение Docker ✅ Нативное ❌ Ручное
Автоматический SSL ✅ ✅
Дашборд ✅ Встроенный ✅ Веб-интерфейс
Конфигурация Docker Labels Графический интерфейс
Продвинутый middleware ✅ Ограниченно
Подходит для DevOps, контейнеры Нетехнические пользователи

Частые проблемы и их решение

SSL-сертификат не выдаётся

  • Убедитесь, что порт 80 доступен публично: curl http://vashomain.com
  • Проверьте права на acme.json: chmod 600
  • Изучите логи: docker logs traefik 2>&1 | grep -i acme

Контейнер не виден Traefik

  • Убедитесь в наличии метки traefik.enable=true
  • Контейнер должен быть в сети traefik-net
  • Перезапустите контейнер и проверьте логи

Дашборд недоступен

  • Проверьте DNS-запись для субдомена
  • В строке пароля $$ должен стоять вместо $ (экранирование)

Заключение

Traefik — это мощный и элегантный инструмент для управления трафиком в современных контейнеризированных стеках. Автоматический SSL, динамическая маршрутизация и богатый набор middleware делают его незаменимым в DevOps-практике.

Для комфортной работы с Traefik и Docker вам нужен производительный сервер. VPS NVMe от CLIQHOST обеспечивают высокую скорость дисков, надёжное сетевое соединение и ресурсы, достаточные для запуска сложных стеков приложений.

Если ваш проект требует максимальной производительности, рассмотрите управляемые выделенные серверы CLIQHOST — полностью настроенное решение для продакшн-инфраструктуры.

Нужна помощь с настройкой сервера? Служба управления серверами CLIQHOST возьмёт на себя все технические задачи. Свяжитесь с нами — ответим быстро.

SHARE
// what clients say

What Our Clients Say

Real reviews from customers who trust CLIQHOST for performance, reliability and expert technical support.

★★★★★

"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."

AM
Andrei M.
eCommerce owner · Chișinău
★★★★★

"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."

EV
Elena V.
Web agency · Bălți
★★★★★

"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."

DC
Dmitri C.
SaaS founder · Chișinău