Traefik ist ein Open-Source-HTTP-Reverse-Proxy und Load-Balancer, mit dem Sie Microservices einfach bereitstellen können. Sie können es einfach in Ihre Infrastrukturkomponenten integrieren, darunter Docker, Kubernetes, Docker Swarm, Rancher, AWS und viele mehr. Wenn Sie mehrere Anwendungen auf demselben Docker-Host ausführen möchten, können Sie Traefik als Reverse-Proxy verwenden, um die Ports 80 und 443 für den Rest der Welt verfügbar zu machen.
In diesem Tutorial zeigen wir Ihnen, wie Sie Traefik als Reverse-Proxy unter CentOS 8 installieren und konfigurieren.
Voraussetzungen
- Ein Server mit CentOS 8.
- Ein gültiger Domainname, auf den Ihre Server-IP verweist.
- Ein Root-Passwort wird auf dem Server konfiguriert.
Installieren Sie Docker und Docker Compose
Zunächst müssen Sie die neueste Version von Docker und Docker Compose in Ihrem System installieren. Standardmäßig ist Docker im CentOS 8-Standardrepo nicht verfügbar. Sie müssen also das Docker CE-Repo in Ihrem System hinzufügen. Sie können es mit dem folgenden Befehl hinzufügen:
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Sobald das Repo erstellt ist, installieren Sie Docker CE mit dem folgenden Befehl:
dnf install docker-ce --nobest -y
Sobald Docker installiert ist, starten Sie den Docker-Dienst und ermöglichen Sie ihm, beim Systemneustart mit dem folgenden Befehl zu starten:
systemctl start docker
systemctl enable docker
Um Docker Compose zu installieren, müssen Sie Curl installieren und die Docker Compose-Binärdatei in Ihr System herunterladen. Sie können dies mit dem folgenden Befehl tun:
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-Netzwerk erstellen
Als Nächstes müssen Sie ein neues Docker-Netzwerk erstellen, um den Traefik-Container auszuführen. Sie können es mit dem Namen „web“ erstellen, indem Sie den folgenden Befehl ausführen:
docker network create web
Als nächstes überprüfen Sie Ihr Netzwerk mit dem folgenden Befehl:
docker network ls
Sie sollten die folgende Ausgabe erhalten:
NETWORK ID NAME DRIVER SCOPE 76a9475e5ab0 bridge bridge local 2a3d79f64747 host host local 4c9123229eaa none null local 0b6e010b43d0 web bridge local
Traefik-Proxy installieren und konfigurieren
Bevor Sie beginnen, müssen Sie httpd-tools installieren, um das verschlüsselte Passwort zu generieren. Sie können dieses Tool mit dem folgenden Befehl installieren:
dnf install httpd-tools -y
Generieren Sie nach der Installation das verschlüsselte Passwort mit dem folgenden Befehl:
htpasswd -nb admin my_password
Sie sollten die folgende Ausgabe erhalten:
admin:$apr1$wpdR.4yZ$UpbjGS7ZFq4pZHalhH1Tl0
Als nächstes erstellen Sie eine neue Traefik-Konfigurationsdatei mit dem folgenden Befehl:
nano traefik.toml
Fügen Sie die folgenden Zeilen hinzu, einschließlich Ihres gültigen Domänennamens, Ihres gesicherten Passworts und Ports:
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"
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Erstellen Sie dann eine leere Datei, um Ihre Let’s Encrypt-Informationen zu speichern.
touch acme.json
Als nächstes erteilen Sie dieser Datei mit dem folgenden Befehl die richtige Berechtigung:
chmod 600 acme.json
Erstellen Sie eine Docker-Compose-Datei
Als Nächstes müssen Sie eine neue docker-compose.yml-Datei erstellen und Ihre Domäne, Ihren Port, Ihr Netzwerk und Ihr Volume definieren.
Sie können es mit dem folgenden Befehl erstellen:
nano docker-compose.yml
Fügen Sie die folgenden Zeilen hinzu:
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
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Traefik-Docker-Container erstellen
An diesem Punkt ist die Konfigurationsdatei von Traefik und Docker Compose fertig. Erstellen Sie nun den Traefik-Container mit dem folgenden Befehl:
docker-compose up -d
Sie sollten die folgende Ausgabe erhalten:
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
Überprüfen Sie als Nächstes den laufenden Container mit dem folgenden Befehl:
docker ps
Sie sollten die folgende Ausgabe erhalten:
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
Zugriff auf die Traefik-Webschnittstelle
Öffnen Sie nun Ihren Webbrowser und greifen Sie über die URL https://traefik.linuxbuz.com auf die Traefik-Weboberfläche zu. Sie werden nach Benutzername und Passwort gefragt:
Geben Sie den Benutzernamen als Admin und das Passwort ein, das Sie zuvor generiert haben, und klicken Sie auf das Zeichen in Taste. Sie sollten das Traefik-Dashboard auf dem folgenden Bildschirm sehen:
Klicken Sie auf GESUNDHEIT Tab. Sie sollten den Integritätsstatus des Traefik-Containers auf dem folgenden Bildschirm sehen:
Schlussfolgerung
Herzliche Glückwünsche! Sie haben den Traefik-Proxy erfolgreich auf CentOS 8 installiert. Weitere Informationen finden Sie in der Traefik-Dokumentation.