Linux⭐ Featuredguide

Traefik als Docker Reverse Proxy mit SSL einrichten 2025

Automatisches SSL, dynamisches Routing per Labels

S
SeeColors IT
11. Juni 20264 Min. Lesezeit386 Aufrufe

Warum Traefik statt Nginx?

Merkmal Nginx Traefik
Konfiguration Statische Configs Docker-Labels (dynamisch)
SSL-Renewal Manuell / Certbot Vollautomatisch
Neue Services Neustart nötig Automatisch erkannt
Dashboard Separat Integriert

Traefik einrichten

Voraussetzungen

  • Domain mit DNS → Server-IP
  • Ports 80 und 443 erreichbar
  • Docker und Docker Compose

docker-compose.yml für Traefik

services:
  traefik:
    image: traefik:v3.0
    container_name: traefik
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - traefik-certs:/letsencrypt
    command:
      - "--api.dashboard=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.web.http.redirections.entrypoint.to=websecure"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.letsencrypt.acme.httpchallenge=true"
      - "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
      - "[email protected]"
      - "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.dashboard.rule=Host(`traefik.firma.de`)"
      - "traefik.http.routers.dashboard.tls.certresolver=letsencrypt"
      - "traefik.http.routers.dashboard.service=api@internal"
      - "traefik.http.routers.dashboard.middlewares=auth"
      - "traefik.http.middlewares.auth.basicauth.users=admin:$$apr1$$..."

volumes:
  traefik-certs:

Passwort-Hash für Dashboard generieren

htpasswd -nb admin IhrPasswort
# Ausgabe: admin:$apr1$...
# Dollarzeichen in docker-compose mit $$ escapen!

App hinter Traefik einrichten

services:
  meine-app:
    image: nginx:alpine
    restart: unless-stopped
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.meine-app.rule=Host(`app.firma.de`)"
      - "traefik.http.routers.meine-app.tls.certresolver=letsencrypt"
      - "traefik.http.services.meine-app.loadbalancer.server.port=80"

networks:
  default:
    external: true
    name: traefik-netz

Das Traefik-Netzwerk erstellen:

docker network create traefik-netz

Alle Services die von Traefik geroutet werden sollen müssen im gleichen Docker-Netz sein.

Middleware – Rate Limiting

labels:
  - "traefik.http.middlewares.rate-limit.ratelimit.average=100"
  - "traefik.http.middlewares.rate-limit.ratelimit.burst=50"
  - "traefik.http.routers.meine-app.middlewares=rate-limit"

Middleware – IP-Whitelist

labels:
  - "traefik.http.middlewares.only-office.ipallowlist.sourcerange=192.168.1.0/24,10.0.0.0/8"
  - "traefik.http.routers.admin.middlewares=only-office"

FAQ

Kann Traefik auch ohne Docker genutzt werden?
Ja. Traefik unterstützt als Provider auch Consul, Kubernetes (Ingress), Rancher und Dateikonfigurationen.

Was ist der Unterschied zwischen Traefik v2 und v3?
Traefik v3 bringt verbesserte Kubernetes-Integration, HTTP/3 Support und eine überarbeitete Konfigurationssyntax. Migration von v2 ist meist durch einfachen Version-Bump möglich.

Fazit

Traefik macht Reverse-Proxy-Konfiguration trivial – ein Label am Container und das Routing ist aktiv, SSL-Zertifikat inklusive.

Wir implementieren Traefik-Infrastrukturen 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