sq.

DNS und Traefik Schritt für Schritt

Namensauflösung, veröffentlichte Ports, Routing und Anwendungsantworten unterscheiden.

Veröffentlicht:

Ein DNS-Resolver übersetzt Namen in Adressen. Ein Reverse Proxy nimmt HTTP-Anfragen entgegen und wählt die Zielanwendung. Keiner dieser Schritte erteilt Besuchern eine Zugriffsberechtigung.

Browser / curl
  -> 127.0.0.1:18080 (local machine or SSH forward)
  -> gateway:8080, Host: lab.test
  -> web:8080 on the lab network
  -> index.html

Im Übungslabor setzt curl --resolve eine vorübergehende Zuordnung, ohne DNS zu ändern. lab.test ist ein reservierter Beispielname. Der HTTP-Header Host enthält weiterhin lab.test. Traefik wählt damit den Router aus core/gateway/routes.yaml und leitet an http://web:8080 weiter.

Docker löst web im gemeinsamen Netzwerk auf. Dein Laptop und öffentliches DNS brauchen diesen Namen nicht. dns: [127.0.0.1] unterbindet beim Übungs-Gateway eine brauchbare externe DNS-Weiterleitung; laufende Dienstnamen löst Docker weiterhin auf. So kann ein fehlender Backendname nicht durch eine fremde Wildcard aufgelöst werden. Übernimm das nicht für Dienste, die Internetnamen auflösen müssen.

Zwei gezielte Versuche

Auf dem Übungsserver sollte curl -i http://127.0.0.1:18080/ den Status 404 liefern: Für diesen Hostnamen gibt es keine Route. Mit curl -i --resolve lab.test:18080:127.0.0.1 http://lab.test:18080/ zeigt Status 200, dass Router und Backend funktionieren. Auch die Anwendung kann 404 liefern. Prüfe deshalb Gateway-Logs, bevor du Routingregeln änderst.

Verwende als Backend nicht localhost:8080: Im Traefik-Container bedeutet das Traefik selbst. Nutze den Compose-Dienstnamen und den internen Anwendungsport. Der Hostport 18080 ist nicht der Backendport.

Später eine eigene Domain nutzen

Dieses Beispiel bleibt lokal. Ein öffentlicher Dienst braucht eine eigene Domain, HTTPS, gegebenenfalls Anmeldung, Updates, Wiederherstellung und eine bewusst eingerichtete Route. Cloudflare Tunnel stellt eine ausgehende Verbindung zum Eingangsdienst her, verlangt aber nicht automatisch eine Anmeldung. Dafür ist etwa eine separate Cloudflare-Access-Regel nötig. Ein privates VPN eignet sich für Dienste, die nur du nutzen sollst.

Lies zuerst die Gateway-Notiz, dann Tunnel oder VPN. Veröffentliche nicht DNS-Verwaltung, Metriken, Backups, Docker-API oder das gesamte Dashboard, um eine einzelne Seite erreichbar zu machen. Traefik-Dateianbieter

Weiter: Fehler eingrenzen.

Alle Notizen →