Как установить и использовать Traefik в качестве обратного прокси с Docker на CentOS 8
На этой странице
- Предпосылки
- Установите Docker и Docker Compose
- Создать сеть Docker
- Установка и настройка прокси-сервера Traefik
- Создание файла Docker Compose
- Сборка контейнера Traefik Docker
- Доступ к веб-интерфейсу Traefik
- Заключение
Traefik — это обратный прокси-сервер HTTP с открытым исходным кодом и балансировщик нагрузки, который помогает вам легко развертывать микросервисы. Вы можете легко интегрировать его с компонентами вашей инфраструктуры, включая Docker, Kubernetes, Docker Swarm, Rancher, AWS и многие другие. Если вы хотите запускать несколько приложений на одном хосте Docker, вы можете использовать Traefik в качестве обратного прокси-сервера, чтобы открыть порты 80 и 443 для остального мира.
В этом руководстве мы покажем вам, как установить и настроить Traefik в качестве обратного прокси-сервера на CentOS 8.
Предпосылки
- Сервер под управлением CentOS 8.
- Действительное доменное имя, указанное с IP-адресом вашего сервера.
- Пароль root настраивается на сервере.
Установите Docker и Docker Compose
Во-первых, вам нужно будет установить в вашей системе последнюю версию Docker и Docker Compose. По умолчанию Docker недоступен в репозитории CentOS 8 по умолчанию. Поэтому вам нужно будет добавить репозиторий Docker CE в вашу систему. Вы можете добавить его с помощью следующей команды:
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
После создания репозитория установите Docker CE с помощью следующей команды:
dnf install docker-ce --nobest -y
После установки Docker запустите службу Docker и включите ее запуск при перезагрузке системы с помощью следующей команды:
systemctl start docker
systemctl enable docker
Чтобы установить Docker Compose, вам необходимо установить Curl и загрузить двоичный файл Docker Compose в вашу систему. Вы можете сделать это с помощью следующей команды:
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
Далее вам нужно будет создать новую сеть Docker для запуска контейнера traefik. Вы можете создать его с именем \web\, выполнив следующую команду:
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
Перед запуском вам необходимо установить httpd-tools для генерации зашифрованного пароля. Вы можете установить этот инструмент с помощью следующей команды:
dnf install httpd-tools -y
После установки сгенерируйте зашифрованный пароль с помощью следующей команды:
htpasswd -nb admin my_password
Вы должны получить следующий результат:
admin:$apr1$wpdR.4yZ$UpbjGS7ZFq4pZHalhH1Tl0
Затем создайте новый файл конфигурации Traefik с помощью следующей команды:
nano traefik.toml
Добавьте следующие строки, включая ваше действительное доменное имя, защищенный пароль и порт:
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 = "" 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
Далее вам нужно будет создать новый файл docker-compose.yml и определить свой домен, порт, сеть и том.
Вы можете создать его с помощью следующей команды:
nano docker-compose.yml
Добавьте следующие строки:
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
На этом файл конфигурации Traefik и Docker Compose готов. Теперь создайте контейнер Traefik с помощью следующей команды:
docker-compose up -d
Вы должны получить следующий результат:
Unable to find image 'traefik:1.7.21-alpine' locally 1.7.21-alpine: Pulling from library/traefik c9b1b535fdd9: Pull complete c141e361698e: Pull complete 2573c02b6f16: Pull complete 1619fb3841d1: Pull complete Digest: sha256:0e4ac8ae724603898620dbd5eb9cda7ec05f405d25476eb0d32b716b490ba079 Status: Downloaded newer image for traefik:1.7.21-alpine 27e735357bb3b7d2d253ff78ddf6e78896851420eff399e8ade23affc7ff0bf7
Затем проверьте работающий контейнер с помощью следующей команды:
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
Теперь откройте веб-браузер и войдите в веб-интерфейс Traefik, используя URL-адрес https://traefik.linuxbuz.com. Вам будет предложено ввести имя пользователя и пароль:
Укажите имя пользователя в качестве администратора и пароль, которые вы создали ранее, и нажмите кнопку «Войти». Вы должны увидеть панель инструментов Traefik на следующем экране:
Нажмите на вкладку ЗДОРОВЬЕ. Вы должны увидеть состояние работоспособности контейнера Traefik на следующем экране:
Заключение
Поздравляем! вы успешно установили прокси-сервер Traefik на CentOS 8. Для получения дополнительной информации посетите документацию Traefik.