Гид по технологиям

Установка и настройка Traefik на CentOS 8

• 4 min read • DevOps • Обновлено 27 Nov 2025
Traefik на CentOS 8 — установка и настройка
Traefik на CentOS 8 — установка и настройка

Что вы получите

  • Рабочий Traefik как обратный прокси и балансировщик нагрузки
  • Автоматическое получение сертификатов Let’s Encrypt
  • Примеры конфигурации traefik.toml и docker-compose.yml

Требования

  • Сервер с CentOS 8.
  • Домен, указывающий на IP сервера.
  • Доступ root или пользователя с sudo.

Важно: в примерах используется Traefik 1.7.x (как в исходном руководстве). Для новых проектов рассмотрите Traefik v2 — конфигурация и ключи отличаются.

Установка Docker и Docker Compose

По умолчанию Docker нет в репозитории CentOS 8 — добавим репозиторий Docker CE и установим пакет.

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

Установите Docker:

dnf install docker-ce --nobest -y
systemctl start docker
systemctl enable docker

Установите curl и Docker Compose (в примере указан релиз 1.25.0):

dnf install curl
curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

Совет: можно установить docker-compose-plugin (v2) через dnf или использовать Docker Compose V2 как плагин, если ваша инфраструктура это поддерживает.

Создание Docker‑сети

Traefik и ваши приложения должны быть в общей bridge‑сети, чтобы Traefik мог обнаруживать контейнеры.

docker network create web

Проверьте сети:

docker network ls

Ожидаемый вывод (пример):

NETWORK ID          NAME                DRIVER              SCOPE
76a9475e5ab0        bridge              bridge              local
2a3d79f64747        host                host                local
4c9123229eaa        none                null                local
0b6e010b43d0        web                 bridge              local

Подготовка к настройке Traefik

Установим утилиту для создания HTTP‑хэша пароля и создадим зашифрованный пароль для панели.

dnf install httpd-tools -y
htpasswd -nb admin my_password

Команда выдаст строку вида:

admin:$apr1$wpdR.4yZ$UpbjGS7ZFq4pZHalhH1Tl0

Скопируйте эту строку — она будет вставлена в конфигурацию Traefik.

Конфигурация traefik.toml

Создайте файл конфигурации:

nano traefik.toml

Вставьте (замените domain, email и пароль на свои значения):

defaultEntryPoints = ["http", "https"]

[entryPoints]
  [entryPoints.dashboard]
    address = ":8080"
    [entryPoints.dashboard.auth]
      [entryPoints.dashboard.auth.basic]
        users = ["admin:$apr1$wpdR.4yZ$UpbjGS7ZFq4pZHalhH1Tl0"]
  [entryPoints.http]
    address = ":80"
      [entryPoints.http.redirect]
        entryPoint = "https"
  [entryPoints.https]
    address = ":443"
      [entryPoints.https.tls]

[api]
entrypoint="dashboard"

[acme]
email = "[email protected]"
storage = "acme.json"
entryPoint = "https"
onHostRule = true
  [acme.httpChallenge]
  entryPoint = "http"

[docker]
domain = "traefik.linuxbuz.com"
watch = true
network = "web"

Сохраните файл. Затем создайте файл для хранения данных Let’s Encrypt и установите права доступа:

touch acme.json
chmod 600 acme.json

Создание docker-compose.yml

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

nano docker-compose.yml

Вставьте конфигурацию Traefik (сохраняйте сеть web как external):

version: '3'

services:

  traefik:
    image: traefik:1.7.21-alpine
    command: --docker --docker.domain=linuxbuz.com
    ports:
      - 80:80
      - 443:443
    networks:
      - web
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik.toml:/traefik.toml
      - ./acme.json:/acme.json
    labels:
      - "traefik.frontend.rule=Host:traefik.linuxbuz.com"
      - "traefik.port=8080"
    container_name: traefik
    restart: always

networks:
   web:
    external: true

Сохраните файл.

Запуск контейнера Traefik

Запустите стек в фоне:

docker-compose up -d

Пример вывода при загрузке образа:

Unable to find image 'traefik:1.7.21-alpine' locally
1.7.21-alpine: Pulling from library/traefik
...
Status: Downloaded newer image for traefik:1.7.21-alpine

Проверьте контейнеры:

docker ps

Ожидаемый пример:

CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                                      NAMES
7604696507a5        traefik:1.7.21-alpine   "/entrypoint.sh --do…"   6 seconds ago       Up 4 seconds        0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   traefik

Доступ к веб‑интерфейсу Traefik

Откройте в браузере https://traefik.linuxbuz.com и введите учётные данные admin + пароль, который вы сгенерировали.

Экран входа в Traefik

После входа вы увидите панель управления и статистику активности.

Панель управления Traefik

Статистика трафика Traefik

Типовые проблемы и их решения

  • Панель не открывается по HTTPS: проверьте, что DNS указывает на IP сервера и что порт 443 открыт в фаерволе.
  • Let’s Encrypt не выдаёт сертификат: убедитесь, что запись A для домена доступна извне и что httpChallenge настроен на порт 80.
  • Traefik не видит контейнеры: проверьте, что контейнеры находятся в сети web и что Docker сокет подключён в volumes.

Альтернативные подходы

  • Использовать Traefik v2: имеет более гибкую конфигурацию routers/services/middlewares.
  • Использовать Nginx или HAProxy, если вы предпочитаете файлную конфигурацию или функциональность, специфичную для Nginx.
  • Управлять сертификатами вручную или через certbot, если вы не хотите автоматизировать ACME.

Когда этот подход не подходит

  • Если вам нужна тонкая маршрутизация на уровне приложения (L7) с нестандартными правилами — рассмотрите сервис‑mesh.
  • На очень старых системах или в окружениях без Docker этот метод неприменим.

Мини‑методология развертывания (быстрая чек‑схема)

  1. Подготовить сервер и DNS.
  2. Установить Docker и Docker Compose.
  3. Создать Docker‑сеть web.
  4. Настроить traefik.toml и создать acme.json.
  5. Создать docker‑compose.yml и запустить docker-compose up -d.
  6. Проверить панель и сертификаты.

Контрольные списки по ролям

  • Администратор сервера:
    • Проверить DNS и firewall
    • Установить Docker и права для пользователя
  • DevOps:
    • Настроить traefik.toml и docker‑compose.yml
    • Автоматизировать резервное копирование acme.json
  • Разработчик:
    • Убедиться, что сервисы выставляют нужные label’ы для Traefik
    • Тестировать маршрутизацию и HTTPS

Краткий словарь (1‑строчные определения)

  • Traefik: легковесный обратный прокси и load balancer для микросервисов.
  • Reverse proxy: прокси, принимающее запросы от клиентов и перенаправляющее их на бэкенды.
  • ACME: протокол для автоматического получения TLS‑сертификатов (используется Let’s Encrypt).
  • Docker‑сеть bridge: виртуальная сеть для связи контейнеров на одном хосте.

Рекомендуемые тесты и критерии приёмки

  • Панель Traefik доступна по HTTPS и требует аутентификацию.
  • Для тестового сервиса сертификат выдан Let’s Encrypt и доверяется браузером.
  • Traefik видит запущенные контейнеры в сети web и корректно маршрутизирует запросы.

Пример принятия: быстрый smoke‑test

  1. Запустите простой nginx‑контейнер в сети web с меткой Host:example.yourdomain
  2. Откройте https://example.yourdomain — должен ответить nginx по HTTPS
  3. Проверить в панели Traefik, что backend виден и healthy

Решение проблем и откат (rollback)

  • Если после изменений Traefik перестал работать: остановите стек docker-compose down, верните предыдущие файлы traefik.toml и acme.json (из резервной копии) и запустите docker-compose up -d.

Простая схема принятия решения (Mermaid)

flowchart TD
  A[Нужно обратное проксирование?] -->|Да| B{Есть Docker?}
  B -->|Да| C[Использовать Traefik]
  B -->|Нет| D[Использовать Nginx/HAProxy]
  A -->|Нет| E[Traefik не нужен]

Заключение

Поздравляем — вы установили и настроили Traefik на CentOS 8. Traefik упрощает управление маршрутами и сертификатами для множества приложений, запущенных на одном хосте. Для дальнейших шагов проверьте документацию Traefik (особенно если планируете перейти на Traefik v2) и автоматизируйте развёртывание через CI/CD.

Короткие рекомендации: держите acme.json в резерве, используйте уникальные пароли для панели и продумывайте политику обновления образов.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро