Si vous déployez des applications web en 2026, vous avez forcément croisé la route d’un reverse proxy. Nginx, Apache, HAProxy : ces vénérables solutions font le job, mais elles partagent un défaut commun — la configuration manuelle. Chaque nouveau service, chaque nouveau sous-domaine nécessite d’éditer un fichier de config et de recharger le serveur. Traefik renverse la table : il découvre automatiquement vos services, génère les certificats SSL, et route le trafic sans que vous ayez à toucher un seul fichier de configuration. Voici comment le maîtriser.
Qu’est-ce que Traefik et pourquoi il change tout
Traefik est un reverse proxy cloud-native écrit en Go, créé en 2016 par Emile Vauge et devenu l’un des projets open-source les plus actifs de l’écosystème cloud (50 000+ étoiles GitHub en 2026). Contrairement aux reverse proxies traditionnels, Traefik :
- Découvre automatiquement les services via des providers (Docker, Kubernetes, Consul, Redis, fichiers)
- Génère et renouvelle les certificats Let’s Encrypt sans intervention humaine
- S’auto-configure : aucun reload nécessaire quand vous ajoutez un service
- Observe le trafic avec un dashboard temps réel et des métriques Prometheus
- Applique des middlewares (rate limiting, IP whitelist, redirections, authentification) via de simples labels
Pour un développeur web qui jongle entre WordPress, une API Node.js, un dashboard Python et un serveur de staging, Traefik élimine des heures de configuration Nginx.
Installation avec Docker Compose
Voici le docker-compose.yml minimal pour démarrer Traefik en production :
version: '3.9'
services:
traefik:
image: traefik:v3.3
container_name: traefik
restart: unless-stopped
command:
# Active le dashboard (protégé par mot de passe)
- "--api.dashboard=true"
# Providers : Docker et surveillance de fichiers
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--providers.file.directory=/etc/traefik/dynamic"
# Let's Encrypt
- "--certificatesresolvers.letsencrypt.acme.email=votre@email.com"
- "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge=true"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
# Entrypoints HTTP et HTTPS
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
# Redirection HTTP → HTTPS globale
- "--entrypoints.web.http.redirections.entrypoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./letsencrypt:/letsencrypt
- ./dynamic:/etc/traefik/dynamic
networks:
- proxy
networks:
proxy:
external: true
Créez le réseau externe une seule fois :
docker network create proxy
Déployer un service WordPress avec HTTPS automatique
La magie de Traefik opère via des labels Docker. Voici un WordPress avec MariaDB qui obtient automatiquement son certificat SSL :
services:
wp:
image: wordpress:6.5-php8.3
restart: unless-stopped
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: ${WP_DB_PASSWORD}
volumes:
- ./wp-content:/var/www/html/wp-content
labels:
- "traefik.enable=true"
# Routeur HTTP
- "traefik.http.routers.monsite.rule=Host(`monsite.fr`) || Host(`www.monsite.fr`)"
- "traefik.http.routers.monsite.entrypoints=websecure"
- "traefik.http.routers.monsite.tls.certresolver=letsencrypt"
# Middleware : redirection www → non-www
- "traefik.http.middlewares.redirect-www.redirectregex.regex=^https://www\.monsite\.fr/(.*)"
- "traefik.http.middlewares.redirect-www.redirectregex.replacement=https://monsite.fr/$${1}"
- "traefik.http.middlewares.redirect-www.redirectregex.permanent=true"
networks:
- proxy
- internal
db:
image: mariadb:11.4
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: ${WP_DB_PASSWORD}
volumes:
- ./db-data:/var/lib/mysql
networks:
- internal # La BDD n'est PAS exposée sur le réseau proxy
networks:
proxy:
external: true
internal:
En 30 secondes, votre site WordPress est en ligne avec HTTPS, renouvellement automatique des certificats, et isolation réseau de la base de données. Aucune configuration Nginx, aucun fichier .conf, aucun reload.
Les middlewares : la boîte à outils intégrée
Traefik embarque plus de 30 middlewares qui s’activent par simples labels. Voici les plus utiles pour un développeur web :
Rate limiting : protégez vos formulaires
# Limite à 30 requêtes par seconde par IP
- "traefik.http.middlewares.rate-limit.ratelimit.average=30"
- "traefik.http.middlewares.rate-limit.ratelimit.burst=10"
- "traefik.http.routers.monsite.middlewares=rate-limit"
IP Whitelist : restreindre l’accès admin
# Seul le bureau peut accéder à /wp-admin
- "traefik.http.middlewares.admin-ip.ipwhitelist.sourcerange=10.0.0.0/8,1.2.3.4"
- "traefik.http.routers.monsite.middlewares=admin-ip"
Basic Auth : protéger un staging
# Générer le mot de passe : htpasswd -nb admin motdepasse
- "traefik.http.middlewares.staging-auth.basicauth.users=admin:$$2y$$05$$..."
- "traefik.http.routers.staging.middlewares=staging-auth"
Compression et en-têtes de sécurité
# Active Gzip/Brotli automatiquement
- "traefik.http.middlewares.compress.compress=true"
# Headers de sécurité OWASP
- "traefik.http.middlewares.sec-headers.headers.framedeny=true"
- "traefik.http.middlewares.sec-headers.headers.sslredirect=true"
- "traefik.http.middlewares.sec-headers.headers.stsSeconds=31536000"
- "traefik.http.middlewares.sec-headers.headers.stsIncludeSubdomains=true"
- "traefik.http.middlewares.sec-headers.headers.contentTypeNosniff=true"
- "traefik.http.middlewares.sec-headers.headers.browserXssFilter=true"
Dashboard et monitoring
Activez le dashboard Traefik (protégé par authentification) :
labels:
- "traefik.enable=true"
- "traefik.http.routers.dashboard.rule=Host(`traefik.monsite.fr`)"
- "traefik.http.routers.dashboard.service=api@internal"
- "traefik.http.routers.dashboard.entrypoints=websecure"
- "traefik.http.routers.dashboard.tls.certresolver=letsencrypt"
- "traefik.http.routers.dashboard.middlewares=auth"
- "traefik.http.middlewares.auth.basicauth.users=admin:$$2y$$05$$..."
Le dashboard affiche en temps réel : les routeurs actifs, les services, les middlewares, l’état des certificats SSL, et les métriques de trafic. Plus besoin de grep dans les logs Nginx pour comprendre ce qui se passe.
Pour une vue plus poussée, Traefik expose nativement des métriques Prometheus et un exporter OpenTelemetry. Un dashboard Grafana en deux clics :
# docker-compose.yml de Traefik
command:
- "--metrics.prometheus=true"
- "--metrics.prometheus.addrouterslabels=true"
- "--metrics.prometheus.entrypoint=traefik"
- "--tracing.opentelemetry=true"
- "--tracing.opentelemetry.grpc.endpoint=jaeger:4317"
Traefik vs Nginx Proxy Manager vs Caddy
| Critère | Traefik v3 | NPM | Caddy |
|---|---|---|---|
| Découverte auto Docker | ✅ Native | ✅ Via UI | ❌ Manuel |
| SSL Let’s Encrypt | ✅ Auto | ✅ Via UI | ✅ Auto |
| Dashboard | ✅ Complet | ✅ Simple | ❌ Minimal |
| Middlewares | ✅ 30+ | ⚠️ Basique | ✅ Modules |
| Kubernetes | ✅ Excellente | ❌ | ⚠️ Partielle |
| Performance (req/s) | ~45 000 | ~35 000 | ~38 000 |
| Configuration | Labels / YAML | Interface web | Caddyfile |
Nginx Proxy Manager (NPM) reste le plus simple si vous voulez une interface web point-and-click. Caddy est idéal pour les petits projets standalone. Traefik est imbattable dès que vous gérez plus de trois services ou que vous approchez Kubernetes.
Pièges à éviter
- Le dashboard en HTTP public : protégez-le toujours par basic auth + IP whitelist.
- Le fichier acme.json : sauvegardez-le religieusement. Il contient vos clés privées SSL. Sans backup, vous devrez régénérer tous vos certificats (et subir le rate limit de Let’s Encrypt).
- Les labels qui s’accumulent : utilisez un fichier
.envet des variables pour ne pas vous perdre dans 50 lignes de labels par service. - La version de l’API Docker : Traefik v3 nécessite Docker 24+. Sur un vieux serveur, montez en version avant d’installer.
Conclusion
Traefik n’est pas juste « un énième reverse proxy ». C’est un changement de paradigme dans la gestion du trafic web : au lieu de configurer manuellement chaque route, vous annotez vos services et Traefik fait le reste. Pour un développeur qui déploie WordPress, des APIs, des dashboards ou des microservices, c’est un gain de temps colossal et une fiabilité accrue — plus de certificats expirés, plus de reload oublié, plus de configuration divergente entre dev et prod.
En 2026, Traefik est le reverse proxy de référence pour les déploiements cloud-native. Si vous êtes encore sous Nginx configuré à la main, ce guide est votre excuse pour sauter le pas.
Sources : Documentation officielle Traefik — GitHub Traefik — Let’s Encrypt Rate Limits — Docker Compose Documentation
Commentaires (0)
Laisser un commentaire
Les commentaires sont modérés. Questions WordPress, cybersécurité ou dev web bienvenues.