nginx-proxy et nginx-proxy-acme sont deux outils puissants qui permettent de simplifier la gestion des reverse proxies et des certificats SSL pour vos applications Docker. Ces outils sont particulièrement utiles pour ceux qui hébergent plusieurs applications sur un même serveur et souhaitent gérer le routage du trafic ainsi que les certificats SSL de manière automatisée. Cet article explore les principaux avantages de ces outils et fournit un guide détaillé pour les installer et les configurer en utilisant Docker Compose.
Pourquoi Choisir Nginx-Proxy et Nginx-Proxy-Acme ?
1. Gestion Simplifiée des Reverse Proxies
nginx-proxy
permet de gérer facilement plusieurs applications Docker en utilisant un reverse proxy Nginx. Il détecte automatiquement les conteneurs Docker et configure Nginx pour les rediriger en fonction des en-têtes de domaine.
2. Certificats SSL Automatiques avec LetsEncrypt
nginx-proxy-acme
est un complément de nginx-proxy
qui automatise la gestion des certificats SSL avec Let’s Encrypt. Il génère et renouvelle automatiquement les certificats SSL, vous garantissant une sécurité accrue sans intervention manuelle.
3. Configuration Dynamique
Les deux outils utilisent une configuration dynamique qui simplifie la gestion des hôtes virtuels et des certificats SSL. Vous n’avez pas besoin de modifier les fichiers de configuration de Nginx manuellement chaque fois que vous ajoutez ou supprimez un conteneur.
4. Open Source et Gratuit
Les deux outils sont open source et gratuits, vous permettant de les utiliser, les modifier et les adapter à vos besoins sans frais.
Installation de Nginx-Proxy et Nginx-Proxy-Acme avec Docker Compose
L’installation de nginx-proxy
et nginx-proxy-acme
via Docker Compose est simple. Voici un guide étape par étape pour configurer ces outils sur votre serveur.
Prérequis
Avant de commencer, assurez-vous que Docker et Docker Compose sont installés sur votre serveur. Vous pouvez les installer avec les commandes suivantes :
sudo apt update
sudo apt install docker.io docker-compose -y
Création du Fichier Docker Compose
Créez un fichier docker-compose.yml
dans un répertoire de votre choix. Ce fichier contiendra la configuration nécessaire pour déployer nginx-proxy
et nginx-proxy-acme
. Utilisez le code suivant pour configurer les services :
version: '3'
services:
nginx-proxy:
image: nginxproxy/nginx-proxy
container_name: nginx-proxy
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx-proxy_conf:/etc/nginx/conf.d
- ./nginx-proxy_vhosts:/etc/nginx/vhost.d
- ./nginx-proxy_certs:/etc/nginx/certs
- /var/run/docker.sock:/tmp/docker.sock
restart: always
nginx-proxy-acme:
image: nginxproxy/acme-companion
container_name: nginx-proxy-acme
volumes:
- ./nginx-proxy_certs:/etc/nginx/certs
- /var/run/docker.sock:/var/run/docker.sock
environment:
- [email protected]
depends_on:
- nginx-proxy
restart: always
Explications
- nginx-proxy :
- image : Indique l’image Docker officielle de
nginx-proxy
. - container_name : Nom du conteneur pour une identification facile.
- ports : Mappe les ports 80 et 443 du conteneur aux ports 80 et 443 de l’hôte pour gérer le trafic HTTP et HTTPS.
- volumes : Monte les répertoires nécessaires pour stocker la configuration Nginx, les fichiers de certificats, et la communication avec le socket Docker.
- restart : Assure que le conteneur redémarre automatiquement en cas d’échec.
- nginx-proxy-acme :
- image : Indique l’image Docker officielle de
nginx-proxy-acme
. - container_name : Nom du conteneur pour une identification facile.
- volumes : Monte les répertoires nécessaires pour stocker les certificats SSL et la communication avec le socket Docker.
- environment : Définit l’adresse email pour les notifications de renouvellement de certificat.
- depends_on : Assure que
nginx-proxy-acme
démarre aprèsnginx-proxy
.
Lancer les Services
Après avoir créé le fichier docker-compose.yml
, lancez les services avec la commande suivante :
sudo docker-compose up -d
Cette commande télécharge les images Docker, crée les conteneurs, et démarre nginx-proxy
et nginx-proxy-acme
en arrière-plan. Les services seront automatiquement configurés pour gérer les requêtes HTTP et HTTPS pour vos applications Docker.
Configuration des Conteneurs Docker
Pour que nginx-proxy
gère les conteneurs Docker, vous devez définir les variables d’environnement VIRTUAL_HOST
et LETSENCRYPT_HOST
dans vos autres services Docker. Voici un exemple de configuration pour un conteneur Docker :
version: '3'
services:
web:
image: your-web-app
environment:
- VIRTUAL_HOST=yourdomain.com
- LETSENCRYPT_HOST=yourdomain.com
- [email protected]
Conclusion
nginx-proxy
et nginx-proxy-acme
sont des outils puissants pour gérer les reverse proxies et les certificats SSL pour vos applications Docker. Grâce à leur installation simple via Docker Compose et à leur capacité à automatiser la gestion des certificats SSL, ces outils facilitent grandement l’administration de vos services web tout en assurant une sécurité accrue.
Liens Utiles
- Site officiel de Nginx-Proxy
- Repository GitHub de Nginx-Proxy
- Site officiel de Nginx-Proxy-Acme
- Repository GitHub de Nginx-Proxy-Acme
Partagez vos expériences avec nginx-proxy
et nginx-proxy-acme
et posez vos questions en commentaire !