Tous les services opérationnels Devise EUR Aucun frais de mise en service Vous êtes à La Réunion ?
‹ Serveurs VPS et Docker

Nginx Proxy Manager : installer et configurer

Nginx Proxy Manager est un proxy inverse avec une interface web : il reçoit le trafic sur les ports 80 et 443, obtient un certificat Let's Encrypt pour chaque domaine et transmet les requêtes au bon conteneur. Il s'installe avec Docker Compose en quelques minutes. Son interface d'administration, sur le port 81, ne doit pas être ouverte en clair sur Internet.

Par Jonathan Dewaele · publié le

Ce guide vaut pour Ubuntu 26.04 et Debian 13 avec Docker Engine et Compose. Le fichier suit la documentation officielle, relue le 14 octobre 2026 : Full Setup Instructions, version 2.16.0 de l'image.

À quoi il sert

Sur un serveur qui fait tourner plusieurs applications (n8n, un gestionnaire de mots de passe, un tableau de bord), chacune écoute sur son propre port. Les ouvrir toutes sur Internet serait une mauvaise idée : chaque port ouvert est une porte supplémentaire, et aucune n'aurait de certificat. Le proxy inverse règle les deux problèmes : il est seul à écouter sur 80 et 443, il porte les certificats, et il oriente chaque nom de domaine vers son application.

Installer Nginx Proxy Manager

  1. Créer un dossier et s'y placer : mkdir ~/npm && cd ~/npm.
  2. Écrire `compose.yaml`. Par rapport à l'exemple officiel, l'interface d'administration n'est publiée que sur l'adresse locale du serveur, et le fuseau horaire est celui de Paris.
services:
  app:
    image: jc21/nginx-proxy-manager:2.16.0
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "127.0.0.1:81:81"
    environment:
      TZ: "Europe/Paris"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    networks:
      - proxy

networks:
  proxy:
    name: proxy
  1. Démarrer : docker compose up -d. Le premier démarrage crée la base, les clés et un compte administrateur ; la documentation prévient qu'il peut prendre une minute ou deux.

Le réseau Docker nommé proxy est celui que rejoindront vos applications : le proxy pourra les joindre par leur nom de conteneur, sans qu'elles publient de port.

Ouvrir l'interface sans l'exposer

  1. Depuis votre ordinateur : ssh -L 8081:127.0.0.1:81 utilisateur@adresse-du-serveur, et laissez la fenêtre ouverte.
  2. Ouvrez http://localhost:8081. Le trafic voyage chiffré dans le tunnel SSH.
  3. Connectez-vous, puis remplacez sans attendre l'adresse et le mot de passe du compte administrateur créé au premier démarrage, comme l'interface le propose.

Publier une application en HTTPS

Prenons une application dont le conteneur s'appelle monapp et écoute sur le port 3000.

  1. La rattacher au réseau `proxy` dans son propre compose.yaml, sans publier de port :
services:
  monapp:
    image: mon-image:1.0
    restart: unless-stopped
    networks:
      - proxy

networks:
  proxy:
    external: true
  1. Faire pointer le domaine (par exemple app.votre-domaine.fr) vers l'adresse IP du serveur, par un enregistrement A.
  2. Créer l'hôte dans l'interface : Hosts, Proxy Hosts, Add Proxy Host. Domaine app.votre-domaine.fr, schéma http, nom d'hôte monapp, port 3000.
  3. Demander le certificat dans l'onglet SSL : choisir « Request a new SSL Certificate », cocher Force SSL, accepter les conditions de Let's Encrypt, enregistrer.

En une minute, l'application répond en HTTPS sur son domaine, et le certificat se renouvelle seul.

Bonnes pratiques

  • Un service qui n'a pas besoin d'Internet ne passe pas par le proxy. Une base de données reste sur le réseau interne de son application.
  • Les listes d'accès (Access Lists) limitent un hôte à des adresses IP ou ajoutent un mot de passe : utile pour un tableau de bord interne.
  • Sauvegardez `data` et `letsencrypt` : toute la configuration et les certificats y sont.
  • Fixez la version de l'image, comme ici, et mettez à jour après avoir lu les notes de version : docker compose pull puis docker compose up -d.

Sur un VPS Hubspace

Docker et Compose sont installés à la livraison, utilisables par le compte admin sans sudo. Le pare-feu réseau ouvre déjà 80 et 443, ceux dont Nginx Proxy Manager a besoin, et laisse le port 81 fermé depuis Internet : le tunnel SSH est la voie normale vers l'interface. Pour Portainer ou Vaultwarden, le même proxy fait l'affaire. Les serveurs VPS décrivent ce qui est livré.

Questions fréquentes

Faut-il Nginx Proxy Manager si j'utilise Caddy ou Traefik ?

Non, un seul proxy inverse par serveur suffit, puisqu'un seul programme peut écouter sur les ports 80 et 443. Nginx Proxy Manager convient à qui préfère une interface ; Caddy et Traefik se règlent par fichiers ou par étiquettes Docker.

Le certificat ne s'obtient pas, que vérifier ?

Que le domaine pointe bien vers l'adresse du serveur (dig +short app.votre-domaine.fr), que les ports 80 et 443 sont joignables depuis Internet, et qu'aucun autre programme ne les occupe déjà. Let's Encrypt doit pouvoir joindre le serveur sur le port 80 pour valider le domaine.

Puis-je publier un service qui n'est pas dans Docker ?

Oui. Le nom d'hôte de destination peut être l'adresse du serveur vue depuis le conteneur, par exemple 172.17.0.1 sur un réseau Docker par défaut, avec le port du service.

Articles liés