Skip to main content

Nginx Proxy Manager

version: '3.3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "npm"
      DB_MYSQL_NAME: "npm"
    volumes:
      - /srv/path/Files/NginxProxyManager/data:/data
      - /srv/path/Files/NginxProxyManager/letsencrypt:/etc/letsencrypt
  db:
    image: 'jc21/mariadb-aria:latest'
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    volumes:
      - /srv/path/Files/NginxProxyManager/data/mysql:/var/lib/mysql

Default creditentials Email: Password: changeme


Nginx Proxy Manager - Explications des Concepts

1. Proxy Hosts

Définition: Les "Proxy Hosts" sont des configurations utilisées pour rediriger le trafic entrant basé sur des noms de domaine (ou sous-domaines) vers des serveurs spécifiques sur votre réseau local ou Internet.

Utilité:

  • Permet de configurer un reverse proxy pour servir plusieurs applications derrière une même IP publique.
  • Simplifie la gestion de plusieurs sites web et applications avec des certificats SSL.

Exemple:

  • Vous avez deux services :
    • Une application Nextcloud sur 192.168.1.10:8080.
    • Une interface web de Home Assistant sur 192.168.1.20:8123.
  • Vous configurez des proxy hosts comme suit :
    • cloud.mondomaine.com -> redirige vers http://192.168.1.10:8080.
    • home.mondomaine.com -> redirige vers http://192.168.1.20:8123.
  • Ces redirections peuvent être sécurisées avec des certificats SSL via Let's Encrypt.

2. Redirection Hosts

Définition: Les "Redirection Hosts" sont des configurations pour rediriger le trafic d'une URL ou d'un domaine vers un autre.

Utilité:

  • Simplifie la redirection de domaines ou sous-domaines.
  • Peut être utilisé pour gérer des redirections temporaires ou permanentes.

Exemple:

  • Vous souhaitez que tout le trafic vers oldsite.com soit redirigé vers newsite.com.
  • Configuration :
    • oldsite.com -> redirection vers https://newsite.com.
    • Type : Redirection permanente (301).

3. Streams

Définition: Les "Streams" sont utilisés pour gérer les connexions TCP/UDP directes. Contrairement aux proxy hosts, qui fonctionnent sur le protocole HTTP/S, les streams sont conçus pour des services réseau non-HTTP.

Utilité:

  • Permet de rediriger des connexions pour des services tels que SSH, MQTT, ou des jeux vidéo utilisant des protocoles TCP/UDP.

Exemple:

  • Vous avez un serveur SSH sur votre réseau local (192.168.1.30:22) et vous voulez permettre l'accès depuis Internet via ssh.mondomaine.com.
  • Configuration :
    • Stream TCP : ssh.mondomaine.com:22 -> 192.168.1.30:22.

4. 404 Hosts

Définition: Les "404 Hosts" servent à intercepter le trafic non désiré ou mal configuré (par exemple, des demandes pour des domaines non gérés par NPM) et à afficher une page 404 ou autre message personnalisé.

Utilité:

  • Prévention d'accès indésiré à votre infrastructure.
  • Fournir une réponse standardisée pour les domaines inconnus.

Exemple:

  • Vous avez configuré plusieurs domaines, mais si quelqu’un essaie d’accéder à nonexistant.mondomaine.com, une page 404 générique s'affiche pour éviter toute exposition non intentionnelle.

5. Access Lists

Définition: Les "Access Lists" permettent de contrôler qui peut accéder à vos services en fonction des adresses IP ou des règles spécifiques.

Utilité:

  • Ajoute une couche de sécurité pour limiter l’accès à certaines ressources.
  • Peut être utilisé pour bloquer ou autoriser uniquement certaines IPs ou plages d’IPs.

Exemple:

  • Vous configurez une liste d’accès pour l’interface admin de votre application :
    • Autorise uniquement les IPs locales (192.168.1.0/24).
    • Bloque toutes les autres IPs.
  • Configuration pour admin.mondomaine.com :
    • Access List : IP locale uniquement.
    • Appliqué au proxy host correspondant.

Résumé des cas d’utilisation

  • Proxy Hosts : Gérer plusieurs applications web sur une seule IP publique.
  • Redirection Hosts : Simplifier la migration ou rediriger les visiteurs d’un ancien domaine à un nouveau.
  • Streams : Gérer des connexions non-HTTP comme SSH ou MQTT.
  • 404 Hosts : Empêcher l’accès à des domaines non configurés.
  • Access Lists : Limiter l’accès aux ressources sensibles ou critiques.