Traefik je open-source HTTP reverzní proxy a nástroj pro vyrovnávání zatížení, který vám pomůže snadno nasadit mikroslužby. Můžete jej snadno integrovat s komponentami vaší infrastruktury, včetně Docker, Kubernetes, Docker Swarm, Rancher, AWS a mnoha dalších. Pokud chcete na stejném hostiteli Dockeru spouštět více aplikací, můžete Traefik použít jako reverzní proxy k odhalení portů 80 a 443 zbytku světa.
V tomto tutoriálu vám ukážeme, jak nainstalovat a nakonfigurovat Traefik jako reverzní proxy na CentOS 8.
Předpoklady
- Server se systémem CentOS 8.
- Platný název domény s adresou IP vašeho serveru.
- Na serveru je nakonfigurováno heslo uživatele root.
Instalovat Docker a Docker Compose
Nejprve budete muset do svého systému nainstalovat nejnovější verzi Docker a Docker Compose. Ve výchozím nastavení není Docker k dispozici ve výchozím úložišti CentOS 8. Budete tedy muset do svého systému přidat repozitář Docker CE. Můžete jej přidat pomocí následujícího příkazu:
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Jakmile je repo vytvořeno, nainstalujte Docker CE pomocí následujícího příkazu:
dnf install docker-ce --nobest -y
Jakmile je Docker nainstalován, spusťte službu Docker a povolte její spuštění při restartu systému pomocí následujícího příkazu:
systemctl start docker
systemctl enable docker
Chcete-li nainstalovat Docker Compose, budete muset nainstalovat Curl a stáhnout binární soubor Docker Compose do vašeho systému. Můžete to udělat pomocí následujícího příkazu:
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
Vytvořit síť Docker
Dále budete muset vytvořit novou síť Docker pro spuštění kontejneru traefik. Můžete jej vytvořit s názvem "web" spuštěním následujícího příkazu:
docker network create web
Dále ověřte svou síť pomocí následujícího příkazu:
docker network ls
Měli byste získat následující výstup:
NETWORK ID NAME DRIVER SCOPE 76a9475e5ab0 bridge bridge local 2a3d79f64747 host host local 4c9123229eaa none null local 0b6e010b43d0 web bridge local
Instalace a konfigurace serveru Traefik Proxy
Než začnete, budete muset nainstalovat httpd-tools pro vygenerování šifrovaného hesla. Tento nástroj můžete nainstalovat pomocí následujícího příkazu:
dnf install httpd-tools -y
Po instalaci vygenerujte zašifrované heslo pomocí následujícího příkazu:
htpasswd -nb admin my_password
Měli byste získat následující výstup:
admin:$apr1$wpdR.4yZ$UpbjGS7ZFq4pZHalhH1Tl0
Dále vytvořte nový konfigurační soubor Traefik pomocí následujícího příkazu:
nano traefik.toml
Přidejte následující řádky včetně platného názvu domény, vašeho zabezpečeného hesla a portu:
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"
Po dokončení uložte a zavřete soubor. Poté vytvořte prázdný soubor, do kterého budou uloženy vaše informace Let’s Encrypt.
touch acme.json
Dále udělte správné oprávnění tomuto souboru pomocí následujícího příkazu:
chmod 600 acme.json
Vytvoření souboru Docker Compose
Dále budete muset vytvořit nový soubor docker-compose.yml a definovat svou doménu, port, síť a svazek.
Můžete jej vytvořit pomocí následujícího příkazu:
nano docker-compose.yml
Přidejte následující řádky:
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
Po dokončení uložte a zavřete soubor.
Sestavení kontejneru Traefik Docker
V tomto okamžiku je konfigurační soubor Traefik a Docker Compose připraven. Nyní vytvořte kontejner Traefik pomocí následujícího příkazu:
docker-compose up -d
Měli byste získat následující výstup:
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
Dále ověřte spuštěný kontejner pomocí následujícího příkazu:
docker ps
Měli byste získat následující výstup:
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
Přístup k webovému rozhraní Traefik
Nyní otevřete webový prohlížeč a přejděte na webové rozhraní Traefik pomocí adresy URL https://traefik.linuxbuz.com. Budete požádáni o zadání uživatelského jména a hesla:

Zadejte uživatelské jméno jako správce a heslo, které jste si dříve vygenerovali, a klikněte na Podepsat v knoflík. Na následující obrazovce byste měli vidět řídicí panel Traefik:

Klikněte na HEALTH tab. Zdravotní stav kontejneru Traefik byste měli vidět na následující obrazovce:

Závěr
Gratulujeme! úspěšně jste nainstalovali Traefik proxy na CentOS 8. Další informace naleznete v dokumentaci Traefik.