Wie man Traefik als Reverse-Proxy mit Docker unter CentOS 8 installiert und verwendet
Traefik ist ein Open-Source-HTTP-Reverse-Proxy und Load Balancer, der Ihnen hilft, Mikrodienste einfach zu implementieren. Sie können es leicht in Ihre Infrastrukturkomponenten integrieren, einschließlich Docker, Kubernetes, Docker Swarm, Rancher, AWS und viele andere. 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 zugänglich zu machen.
In diesem Tutorial zeigen wir Ihnen, wie Sie Traefik als Reverse-Proxy unter CentOS 8 installieren und konfigurieren.
Voraussetzungen
- Ein Server, auf dem CentOS 8 läuft.
- Ein gültiger Domain-Name, der auf Ihre Server-IP zeigt.
- Der Server ist mit einem Root-Passwort konfiguriert.
Docker installieren und Docker komponieren
Zuerst müssen Sie die neueste Version von Docker und Docker Compose in Ihrem System installieren. Standardmäßig ist Docker im Standard-Repo von CentOS 8 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 den Docker CE mit dem folgenden Befehl:
dnf install docker-ce --nobest -y
Sobald der Docker installiert ist, starten Sie den Docker-Dienst und aktivieren Sie ihn beim Systemneustart mit dem folgenden Befehl:
systemctl start docker systemctl enable docker
Um Docker Compose zu installieren, müssen Sie Curl installieren und die Docker Compose-Binärdatei in Ihrem 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
Dockernetzwerk 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: Als nächstes müssen Sie ein neues Docker-Netzwerk erstellen, um den Traefik-Container auszufü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
Installieren und Konfigurieren des Traefik-Proxy
Bevor Sie beginnen, müssen Sie httpd-tools installieren, um das verschlüsselte Kennwort zu generieren. Sie können dieses Tool mit dem folgenden Befehl installieren:
dnf install httpd-tools -y
Nach der Installation generieren Sie 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 = "admin@example.com" 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 geben Sie dieser Datei mit dem folgenden Befehl die entsprechende Berechtigung:
chmod 600 acme.json
Erstellen Sie eine Docker-Compose-Datei
Als Nächstes müssen Sie eine neue Datei docker-compose.yml erstellen und Ihre Domäne, Ihren Port, Ihr Netzwerk und Ihr Volume definieren.
Sie können sie 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 Traefik und die Docker Compose Konfigurationsdatei fertig. Nun bauen Sie 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
Als nächstes überprüfen Sie 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
Zugang zum Traefik Web Interface
Öffnen Sie nun Ihren Webbrowser und greifen Sie über die URL https://traefik.linuxbuz.com auf die Webschnittstelle von Traefik zu. Sie werden gebeten, Benutzername und Passwort einzugeben:
Geben Sie den Benutzernamen als Admin und das Passwort ein, das Sie zuvor generiert haben, und klicken Sie auf die Schaltfläche Anmelden. Auf dem folgenden Bildschirm sollten Sie das Traefik-Dashboard sehen:
Klicken Sie auf die Registerkarte GESUNDHEIT. Auf dem folgenden Bildschirm sollten Sie den Gesundheitszustand des Traefik-Containers sehen:
Schlussfolgerung
Herzlichen Glückwunsch! Sie haben den Traefik-Proxy erfolgreich unter CentOS 8 installiert. Weitere Informationen finden Sie in der Traefik-Dokumentation.