Kennisbank › Moderne Proxies › Traefik als reverse proxy: installatie, configuratie en gebruik
moderne proxies starter 26 August 2026

Traefik als reverse proxy: installatie, configuratie en gebruik

Traefik als reverse proxy: installatie, configuratie en gebruik

Traefik als reverse proxy: installatie, configuratie en gebruik

Dit artikel legt uit hoe u Traefik installeert en configureert als HTTP-reverse proxy en load balancer, voor zowel lokale ontwikkeling als Kubernetes-omgevingen.

Vereisten

- Docker (versie 20.10 of hoger) voor lokale ontwikkeling - Kubernetes-cluster (versie 1.24 of hoger) voor productie-implementaties - Helm (versie 3.0 of hoger) voor Kubernetes-installatie - Toegang tot een domein of wildcard-DNS voor HTTPS-configuratie

Stappen

1. Installeer Traefik lokaal met Docker

Start Traefik met de standaardinstellingen. Dit draait de reverse proxy op poort 80 en 8080 (dashboard).

docker run -d -p 80:80 -p 8080:8080 --name traefik traefik:v3.1

2. Configureer Traefik met een configuratiebestand

Maak een configuratiebestand in TOML-formaat voor geavanceerdere setups. Dit bestand definieert entrypoints, providers en het dashboard.

[entryPoints]
  [entryPoints.web]
    address = ":80"
  [entryPoints.websecure]
    address = ":443"</p><p>[providers]
  [providers.docker]
    endpoint = "unix:///var/run/docker.sock"
    exposedByDefault = false</p><p>[api]
  dashboard = true

Start Traefik met dit configuratiebestand:

docker run -d -p 80:80 -p 443:443 -p 8080:8080 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v $(pwd)/traefik.toml:/etc/traefik/traefik.toml \
  --name traefik traefik:v3.1

3. Routeer verkeer naar services via Docker-labels

Voeg Docker-labels toe aan containers om ze automatisch te detecteren. Traefik leest deze labels en routeert verkeer naar de juiste service.

docker run -d \
  --label "traefik.enable=true" \
  --label "traefik.http.routers.api.rule=Host(\`api.localhost\`)" \
  --label "traefik.http.services.api.loadbalancer.server.port=5000" \
  --name api my-api-image:latest

4. Configureer HTTPS met automatische certificaten

Schakel automatische TLS-certificaten in via Let's Encrypt. Traefik vraagt certificaten aan en vernieuwt ze automatisch.

[certificatesResolvers.letsencrypt]
  [certificatesResolvers.letsencrypt.acme]
    email = "admin@example.com"
    storage = "/letsencrypt/acme.json"
    [certificatesResolvers.letsencrypt.acme.tlsChallenge]

5. Voeg middleware toe voor authenticatie en rate limiting

Definieer middleware in het configuratiebestand voor verkeersbeheer. Dit voegt authenticatie, rate limiting en header-manipulatie toe.

[http.middlewares]
  [http.middlewares.rate-limit]
    [http.middlewares.rate-limit.rateLimit]
      average = 100
      burst = 50</p><p>  [http.middlewares.auth]
    [http.middlewares.auth.basicAuth]
      users = ["admin:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"]

6. Installeer Traefik als Ingress Controller in Kubernetes

Gebruik Helm om Traefik te installeren in uw cluster. Dit installeert Traefik als Ingress Controller met automatische configuratie.

helm repo add traefik https://helm.traefik.io/traefik
helm repo update
helm install traefik traefik/traefik --values values-prod.yaml

7. Definieer Ingress-routes in Kubernetes

Maak Ingress-resources aan om verkeer te routeren naar services binnen uw cluster.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: api-ingress
  annotations:
    traefik.ingress.kubernetes.io/router.entrypoints: websecure
spec:
  rules:
    - host: api.example.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: api-service
                port:
                  number: 5000

8. Update Traefik met atomic rollback

Werk Traefik bij met Helm. De `--atomic` flag zorgt ervoor dat bij een fout automatisch wordt teruggedraaid naar de vorige versie.

helm upgrade traefik traefik/traefik --atomic --values values-prod.yaml

Verificatie

Controleer of Traefik correct werkt. Het dashboard toont actieve routers, services en middleware.

Lokaal: check of het dashboard bereikbaar is
curl -I http://localhost:8080</p><p>Kubernetes: check de status van de Traefik-pod
kubectl get pods -n default -l app.kubernetes.io/name=traefik</p><p>Kubernetes: check de Ingress-resources
kubectl get ingress

Veelgestelde problemen

1. Traefik detecteert Docker-containers niet

Controleer of de Docker-socket correct is gemount en de `exposedByDefault`-instelling niet op `true` staat. Voeg expliciet `traefik.enable=true` toe aan elke container die u wilt blootstellen.

2. HTTPS-certificaten worden niet aangemaakt

Controleer of poort 443 openstaat en het `acme.json`-bestand schrijfbaar is. Let op: Let's Encrypt rate limits per domein — te veel aanvragen binnen een uur blokkeert nieuwe certificaten.

3. CORS-fouten bij lokale ontwikkeling

Dit gebeurt wanneer services op verschillende poorten draaien. Gebruik Traefik met subdomeinen (bijvoorbeeld `api.localhost` en `app.localhost`) zodat alle verzoeken via hetzelfde domein lopen. Configureer CORS-middleware als u cross-origin requests nodig hebt.

Traefik blijft zich ontwikkelen — de volgende grote versie voegt ondersteuning toe voor service mesh-integraties en verbeterde observability.

← Terug naar kennisbank
← Terug naar kennisbank