Installation de Nginx Proxy Manager - Guide d'installation en 2 minutes
Vos services résident actuellement à des adresses laides comme 192.168.1.50:8080. Nginx Proxy Manager les transforme en noms propres comme app.yourdomain.com avec HTTPS gratuit - installé avec un fichier Docker Compose et géré à partir d'un simple panneau Web au lieu de fichiers de configuration écrits à la main.
📑Chapitres
- À quoi sert un proxy inverse : une seule porte pour tous vos services
- Ce dont vous avez besoin avant de commencer : Docker, un domaine et des ports accessibles
- Pointez le DNS de votre domaine vers le serveur avant d'installer quoi que ce soit
- Créez le dossier et le fichier docker-compose.yml
- Démarrez Nginx Proxy Manager avec une seule commande
- Première connexion : l'étape du compte administrateur, tout le monde se trompe
- Créez votre premier hôte proxy, champ par champ
- Obtenez le certificat HTTPS gratuit Lets Encrypt et activez Force SSL
📋 Présentation et guide étape par étape
Ce dont vous avez besoin avant de commencer
Trois choses doivent exister avant que Nginx Proxy Manager (NPM) puisse fonctionner. Tout d'abord, un serveur Linux ou un PC avec Docker et Docker Compose déjà installés et fonctionnels - NPM s'exécute comme un conteneur, pas comme un programme normal. Deuxièmement, un nom de domaine dont vous pouvez modifier le DNS, car chaque service possède son propre sous-domaine. Troisièmement, votre routeur ou pare-feu cloud doit être capable de transférer les ports 80 et 443 vers cette machine.
Pointez d'abord le DNS de votre domaine vers le serveur
NPM achemine le trafic par nom et Lets Encrypt émet des certificats uniquement pour les noms qui pointent de manière prouvée vers votre machine - le nom doit donc être résolu avant de créer quoi que ce soit dessus. Chez votre registraire ou hébergeur DNS, ajoutez un enregistrement A : le nom est uniquement le mot du sous-domaine (par exemple app) et la valeur est l'adresse IP publique de votre serveur. Chaque service obtient son propre enregistrement, et ils peuvent tous pointer vers la même adresse IP – NPM sépare les services plus tard, par leur nom. Définissez une durée de vie courte, par exemple 300 secondes, pendant le test, afin que les erreurs disparaissent en quelques minutes au lieu d'heures.
Prouvez-le avant de continuer : vérifiez que le nom correspond à votre adresse IP publique depuis un réseau extérieur (par exemple depuis votre téléphone avec le Wi-Fi désactivé). La demande d'un certificat contre un DNS défectueux gaspille les tentatives de Lets Encrypt et les échecs répétés peuvent vous limiter pendant des heures. L'ordre est important : le DNS en premier, l'hôte proxy en second, le certificat en troisième.
Créer le dossier et le fichier de composition
Créez un dossier pour NPM sur le serveur et enregistrez le fichier ci-dessous sous le nom docker-compose.yml. Ce fichier unique constitue l'installation complète. Le nom de l'image est l'image officielle de la communauté. Les ports 80 et 443 sont les portes publiques, le port 81 est le panneau d'administration et les deux volumes sont l'endroit où réside toute votre configuration : ./data contient la base de données avec tous vos hôtes proxy et ./letsencrypt contient vos certificats. Perdez ces deux dossiers et vous perdez toute la configuration - sauvegardez-les une fois que les choses fonctionnent.
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
La ligne restart: à moins que-stopped ramène automatiquement NPM après un redémarrage.
Démarrer le gestionnaire de proxy Nginx
Depuis ce dossier, exécutez la commande start. Docker télécharge l'image et démarre le conteneur en arrière-plan.
docker compose up -d
Vérifiez qu'il fonctionne :
docker ps
Vous devriez voir le conteneur répertorié avec les ports 80, 443 et 81. Sur un petit serveur, le premier démarrage prend une minute ou deux pendant la création de la base de données. Si le conteneur continue de redémarrer, les journaux indiquent la raison en langage clair :
docker compose logs
Neuf fois sur dix, une boucle de redémarrage est un port déjà utilisé par autre chose sur l'hôte - généralement un ancien serveur Web toujours en cours d'exécution.
Première connexion - Sécurisez le compte administrateur immédiatement
Ouvrez le panneau d'administration dans un navigateur sur votre propre réseau :
http://your-server-ip:81
Faites cela dès la première minute. En fonction de la version, NPM vous demande soit de remplacer les détails bien connus de l'administrateur de première connexion par votre propre adresse e-mail et un mot de passe fort, soit - sur les versions plus récentes sans compte par défaut - la première personne à ouvrir la page d'administration crée l'administrateur. Quoi qu'il en soit, la règle est la même : créez votre propre compte administrateur au moment du démarrage du conteneur, avant de créer quoi que ce soit d'autre, et utilisez une vraie boîte aux lettres - des e-mails NPM qui traitent des problèmes de certificat.
Créez votre premier hôte proxy
Dans NPM, ouvrez Hôtes → Hôtes proxy → Ajouter un hôte proxy et remplissez le formulaire en une seule phrase - "ce nom va à ce service interne" :
Noms de domaine : app.votredomaine.com : le nom public exact de l'étape 2, qui doit déjà être résolu sur votre serveur.
Schéma : http pour la plupart des applications domestiques et professionnelles. Le schéma décrit la connexion entre NPM et le service interne, et non ce que les visiteurs utilisent – NPM gère le cryptage public à la porte. Choisissez https ici uniquement lorsque l'application interne elle-même sert HTTPS.
Transférer le nom d'hôte/IP : l'adresse interne du service, par exemple 192.168.1.50.
Forward Port : le port sur lequel le service écoute réellement, par exemple 8080 - pas 80 ou 443 ; ce sont les portes de NPM, pas celles du service.
Activez Bloquer les exploits courants, puis enregistrez. Testez immédiatement en ouvrant le nom dans un navigateur - idéalement depuis votre téléphone avec le Wi-Fi désactivé, afin de tester le véritable chemin public.
localhost est faux (à l'intérieur du conteneur de NPM, localhost signifie NPM lui-même) - utilisez l'adresse IP LAN du serveur avec le port publié, ou placez les deux conteneurs sur le même réseau Docker et utilisez le nom du conteneur.Obtenez le certificat HTTPS gratuit Lets Encrypt
Ne faites cela qu'une fois que l'hôte simple de l'étape 6 a déjà fonctionné - HTTPS sur un hôte en panne vous donne un hôte en panne avec un certificat et deux fois plus d'endroits pour rechercher la panne. Ouvrez le même hôte proxy, accédez à l'onglet SSL, définissez le Certificat SSL sur Demander un nouveau certificat SSL, activez Forcer SSL et Support HTTP/2, acceptez les conditions d'utilisation de Lets Encrypt et enregistrez. Rechargez le site - le navigateur devrait maintenant afficher le cadenas sur https.
Comment ça marche : Lets Encrypt prouve que vous contrôlez le nom en demandant à votre serveur, via l'Internet public sur le port 80, d'afficher un jeton à usage unique (le défi HTTP-01). C'est pourquoi le DNS pointant vers vous et un port 80 accessible ne sont pas négociables - échouez l'un ou l'autre et la demande échoue, et l'erreur est dans la configuration, jamais dans Lets Encrypt. Forcer SSL redirige automatiquement chaque visiteur http vers https ; sans cela, la porte non cryptée reste ouverte à côté de celle cryptée.
🏷️Variables et mots clés de recherche de sujet
🎙️ Transcription complète — appuyez pour développer
__TOK_34__
__TOK_35__
__TOK_36__
❓ Questions fréquemment posées
Ce tutoriel est-il 100% gratuit à suivre ?
__TOK_37__
Les débutants peuvent-ils suivre ce guide ?
__TOK_38__
Où puis-je poser des questions si je suis bloqué ?
__TOK_39__