Kennisbank › Moderne Proxies › Traefik comme reverse proxy : installation, configuration et utilisation
moderne proxies starter 26 August 2026

Traefik comme reverse proxy : installation, configuration et utilisation

Traefik comme proxy inverse : installation, configuration et utilisation

Traefik comme reverse proxy : installation, configuration et utilisation

Cet article explique comment installer et configurer Traefik comme reverse proxy HTTP et load balancer, tant pour le développement local que pour les environnements Kubernetes.

Prérequis

- Docker (version 20.10 ou supérieure) pour le développement local - Cluster Kubernetes (version 1.24 ou supérieure) pour les déploiements en production - Helm (version 3.0 ou supérieure) pour l'installation Kubernetes - Accès à un domaine ou à un DNS wildcard pour la configuration HTTPS

Étapes

1. Installez Traefik localement avec Docker

Démarrez Traefik avec les paramètres par défaut. Cela exécute le reverse proxy sur les ports 80 et 8080 (tableau de bord).

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

2. Configurez Traefik avec un fichier de configuration

Créez un fichier de configuration au format TOML pour des configurations plus avancées. Ce fichier définit les entrypoints, les providers et le tableau de bord.

[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

Démarrez Traefik avec ce fichier de configuration :

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. Routez le trafic vers les services via les labels Docker

Ajoutez des labels Docker aux conteneurs pour les détecter automatiquement. Traefik lit ces labels et route le trafic vers le service approprié.

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. Configurez HTTPS avec des certificats automatiques

Activez les certificats TLS automatiques via Let's Encrypt. Traefik demande les certificats et les renouvelle automatiquement.

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

5. Ajoutez du middleware pour l'authentification et le rate limiting

Définissez du middleware dans le fichier de configuration pour la gestion du trafic. Cela ajoute l'authentification, le rate limiting et la manipulation des en-têtes.

[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. Installez Traefik comme Ingress Controller dans Kubernetes

Utilisez Helm pour installer Traefik dans votre cluster. Cela installe Traefik comme Ingress Controller avec une configuration automatique.

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

7. Définissez des routes Ingress dans Kubernetes

Créez des ressources Ingress pour router le trafic vers les services au sein de votre 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. Mettez à jour Traefik avec un rollback atomique

Mettez à jour Traefik avec Helm. Le flag `--atomic` garantit qu'en cas d'erreur, un retour automatique à la version précédente est effectué.

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

Vérification

Vérifiez que Traefik fonctionne correctement. Le tableau de bord affiche les routers, services et middleware actifs.

Local : vérifiez que le tableau de bord est accessible
curl -I http://localhost:8080</p><p>Kubernetes : vérifiez le statut du pod Traefik
kubectl get pods -n default -l app.kubernetes.io/name=traefik</p><p>Kubernetes : vérifiez les ressources Ingress
kubectl get ingress

Problèmes fréquents

1. Traefik ne détecte pas les conteneurs Docker

Vérifiez que le socket Docker est correctement monté et que le paramètre `exposedByDefault` n'est pas sur `true`. Ajoutez explicitement `traefik.enable=true` à chaque conteneur que vous souhaitez exposer.

2. Les certificats HTTPS ne sont pas créés

Vérifiez que le port 443 est ouvert et que le fichier `acme.json` est inscriptible. Attention : Let's Encrypt applique des limites de taux par domaine — trop de demandes en une heure bloque la création de nouveaux certificats.

3. Erreurs CORS lors du développement local

Cela se produit lorsque les services tournent sur des ports différents. Utilisez Traefik avec des sous-domaines (par exemple `api.localhost` et `app.localhost`) afin que toutes les requêtes passent par le même domaine. Configurez un middleware CORS si vous avez besoin de requêtes cross-origin.

Traefik continue d'évoluer — la prochaine grande version ajoutera la prise en charge des intégrations service mesh et une observabilité améliorée.

← Retour à la base de connaissances
← Terug naar kennisbank