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:

Traefik Anmeldung

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:

Traefik Dashboard

Klicken Sie auf die Registerkarte GESUNDHEIT. Auf dem folgenden Bildschirm sollten Sie den Gesundheitszustand des Traefik-Containers sehen:

Traefik Verkehrsstatistik

Schlussfolgerung

Herzlichen Glückwunsch! Sie haben den Traefik-Proxy erfolgreich unter CentOS 8 installiert. Weitere Informationen finden Sie in der Traefik-Dokumentation.

Das könnte dich auch interessieren …