Reverse proxy expliqué simplement : Traefik, Caddy ou NPM ?
Pourquoi un reverse proxy est indispensable pour héberger plusieurs applications en HTTPS, comment il fonctionne, et comment choisir entre Traefik, Caddy, Nginx et Nginx Proxy Manager.
Vous voulez héberger Vaultwarden, Nextcloud et Immich sur le même serveur, chacun avec sa propre adresse en HTTPS. Problème : votre serveur n’a qu’une seule adresse IP et qu’un seul port HTTPS (443). Qui reçoit quoi ?
C’est le rôle du reverse proxy.
Le principe : un standardiste
Le reverse proxy est le seul programme qui écoute sur les ports web (80 et 443). Il regarde quelle adresse le visiteur a demandée, puis transmet la demande à la bonne application :
vault.mondomaine.fr ─┐
cloud.mondomaine.fr ─┼─→ Reverse proxy ─┬─→ Vaultwarden
photos.mondomaine.fr ─┘ (ports 80/443) ├─→ Nextcloud
└─→ Immich
Au passage, il s’occupe du HTTPS : il obtient les certificats auprès de Let’s Encrypt (gratuitement), les renouvelle, et chiffre les échanges. Vos applications n’ont rien à faire.
Les avantages
- Une seule porte d’entrée : seuls les ports 80 et 443 sont ouverts au public.
- HTTPS partout, automatiquement.
- Les applications restent cachées : elles ne sont joignables qu’à travers le proxy.
- Un endroit unique pour ajouter de la sécurité (en-têtes, blocage des attaques avec CrowdSec, authentification…).
Lequel choisir ?
| Pour qui | Configuration | HTTPS | |
|---|---|---|---|
| Traefik | Ceux qui utilisent Docker | Des « labels » dans chaque docker-compose | Automatique |
| Nginx Proxy Manager | Les débutants | Interface web, en cliquant | En un clic |
| Caddy | Ceux qui veulent la simplicité en fichier | Un fichier très court | Automatique |
| Nginx | Les habitués, les gros sites | Un fichier par site, plus détaillé | Avec Certbot |
Traefik : le plus automatique avec Docker
Traefik détecte vos conteneurs tout seul. Il suffit d’ajouter quelques lignes (des labels) dans le docker-compose de chaque application :
labels:
- traefik.enable=true
- traefik.http.routers.vault.rule=Host(`vault.mondomaine.fr`)
Vous lancez l’application, et elle est aussitôt disponible en HTTPS. C’est le choix de Mon serveur et du générateur docker-compose, qui écrivent ces labels pour vous.
Nginx Proxy Manager : tout à la souris
Nginx Proxy Manager offre une interface web : vous ajoutez un « Proxy Host », vous indiquez le domaine et l’application cible, vous cochez « SSL ». Idéal si les fichiers de configuration vous font peur.
Caddy et Nginx : les serveurs web classiques
Ils se configurent par fichier. Caddy est remarquablement simple (et gère le HTTPS seul), Nginx est le standard du web. Notre générateur Nginx / Caddy écrit la configuration pour vous.
Le piège à éviter
Quand une application passe par le reverse proxy, ne publiez pas en plus son port sur Internet
(ports: "8080:80"). Sinon, on peut la joindre directement, sans HTTPS, en contournant le proxy. Et Docker
contourne le pare-feu UFW : bloquer le port dans UFW ne suffit pas.
Avec Traefik ou Nginx Proxy Manager, pas besoin de ports: du tout. Avec Nginx ou Caddy installés sur le serveur,
publiez uniquement en local : "127.0.0.1:8080:80".
Et ensuite ?
- Tout installer d’un coup, Traefik compris : Mon serveur.
- Sécuriser son VPS en 10 étapes.
Une commande qui ne marche pas, une explication pas claire ? Signaler une erreur dans cette page.