Traefik – automatischer Reverse Proxy für Docker 2025

SSL-Terminierung und Service-Discovery für Docker-Container

S
SeeColors IT
11. Juni 20264 Min. Lesezeit169 Aufrufe

Traefik vs. Nginx als Reverse Proxy

Nginx:              Statische Konfiguration, manuell updaten
Traefik:            Dynamisch, liest Docker-Labels automatisch

Traefik Vorteile:
+ Kein Config-Reload bei neuen Containern
+ Automatisches Let's Encrypt
+ Service Discovery (Docker, K8s, Consul)
+ Dashboard und Health-Checks eingebaut
+ Middleware-Ketten (Auth, Rate-Limit, Headers)

Traefik mit Docker Compose

# docker-compose.yml (Basis-Setup)
services:
  traefik:
    image: traefik:v3.0
    container_name: traefik
    restart: unless-stopped
    command:
      - "--api.dashboard=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.letsencrypt.acme.httpchallenge=true"
      - "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
      - "[email protected]"
      - "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "./letsencrypt:/letsencrypt"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.traefik.rule=Host('traefik.firma.de')"
      - "traefik.http.routers.traefik.tls.certresolver=letsencrypt"
      - "traefik.http.services.traefik.loadbalancer.server.port=8080"

App mit Traefik verbinden (Labels)

# Beispiel: Nextcloud hinter Traefik
services:
  nextcloud:
    image: nextcloud:latest
    restart: unless-stopped
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.nextcloud.rule=Host('cloud.firma.de')"
      - "traefik.http.routers.nextcloud.tls.certresolver=letsencrypt"
      - "traefik.http.routers.nextcloud.entrypoints=websecure"
      - "traefik.http.services.nextcloud.loadbalancer.server.port=80"
      # Middleware: HTTP → HTTPS Redirect
      - "traefik.http.routers.nextcloud-http.rule=Host('cloud.firma.de')"
      - "traefik.http.routers.nextcloud-http.entrypoints=web"
      - "traefik.http.routers.nextcloud-http.middlewares=redirect-https"
      - "traefik.http.middlewares.redirect-https.redirectscheme.scheme=https"

Middleware (BasicAuth)

# Traefik-Dashboard mit BasicAuth absichern
labels:
  - "traefik.http.middlewares.auth.basicauth.users=admin:$$2y$$10$$HASH"

# Passwort-Hash generieren
echo $(htpasswd -nB admin) | sed -e s/\$/\$\$/g

Traefik Dashboard

http://traefik.firma.de

Zeigt:
- Alle aktiven Router
- Services und Backends
- Let's Encrypt Zertifikate
- Entrypoints
- Health-Status

Statische Konfigurationsdatei (traefik.yml)

# traefik.yml
api:
  dashboard: true
  insecure: false

entryPoints:
  web:
    address: ":80"
  websecure:
    address: ":443"

providers:
  docker:
    exposedByDefault: false
  file:
    filename: /etc/traefik/dynamic.yml

certificatesResolvers:
  letsencrypt:
    acme:
      email: [email protected]
      storage: /letsencrypt/acme.json
      httpChallenge:
        entryPoint: web

FAQ

Kann Traefik mit nicht-Docker-Diensten umgehen?
Ja. Traefik unterstützt auch statische File-Provider für externe Services (z.B. VM hinter Traefik, Bare-Metal-Server).

Fazit

Traefik ist ideal für Docker-Umgebungen: Zero-Config für neue Container, automatisches SSL und eingebautes Dashboard.

Reverse Proxy und SSL-Konfiguration für KMU in Heidelberg, Mannheim und der Rhein-Neckar-Region. Anfragen.

Artikel teilen

War dieser Artikel hilfreich?

Dein Feedback hilft uns, bessere Inhalte zu erstellen.

Kommentar hinterlassen

Verwandte Artikel