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: admin@example.com
Password: changeme


Explications des Concepts

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.
Explanation of Concepts

Nginx Proxy Manager - Explanation of Concepts

1. Proxy Hosts

Definition: "Proxy Hosts" are configurations used to redirect incoming traffic based on domain names (or subdomains) to specific servers on your local network or the internet.

Purpose:

  • Allows setting up a reverse proxy to serve multiple applications behind a single public IP.
  • Simplifies managing multiple websites and applications with SSL certificates.

Example:

  • You have two services:
    • A Nextcloud application on 192.168.1.10:8080.
    • A Home Assistant web interface on 192.168.1.20:8123.
  • You configure proxy hosts as follows:
    • cloud.mydomain.com -> redirects to http://192.168.1.10:8080.
    • home.mydomain.com -> redirects to http://192.168.1.20:8123.
  • These redirections can be secured with SSL certificates via Let's Encrypt.

2. Redirection Hosts

Definition: "Redirection Hosts" are configurations to redirect traffic from one URL or domain to another.

Purpose:

  • Simplifies redirecting domains or subdomains.
  • Useful for managing temporary or permanent redirects.

Example:

  • You want all traffic to oldsite.com to be redirected to newsite.com.
  • Configuration:
    • oldsite.com -> redirect to https://newsite.com.
    • Type: Permanent redirect (301).

3. Streams

Definition: "Streams" are used to handle direct TCP/UDP connections. Unlike proxy hosts, which work on HTTP/S protocols, streams are designed for non-HTTP network services.

Purpose:

  • Enables redirecting connections for services like SSH, MQTT, or games using TCP/UDP protocols.

Example:

  • You have an SSH server on your local network (192.168.1.30:22) and want to allow access from the internet via ssh.mydomain.com.
  • Configuration:
    • Stream TCP: ssh.mydomain.com:22 -> 192.168.1.30:22.

4. 404 Hosts

Definition: "404 Hosts" are used to intercept unwanted or misconfigured traffic (e.g., requests for domains not handled by NPM) and display a 404 page or other custom message.

Purpose:

  • Prevent unauthorized access to your infrastructure.
  • Provide a standardized response for unknown domains.

Example:

  • You have configured several domains, but if someone tries to access nonexistent.mydomain.com, a generic 404 page is displayed to avoid accidental exposure.

5. Access Lists

Definition: "Access Lists" are used to control who can access your services based on IP addresses or specific rules.

Purpose:

  • Adds a layer of security to restrict access to certain resources.
  • Can be used to block or allow specific IPs or IP ranges.

Example:

  • You configure an access list for the admin interface of your application:
    • Allow only local IPs (192.168.1.0/24).
    • Block all other IPs.
  • Configuration for admin.mydomain.com:
    • Access List: Local IPs only.
    • Applied to the corresponding proxy host.

Summary of Use Cases
  • Proxy Hosts: Manage multiple web applications on a single public IP.
  • Redirection Hosts: Simplify migration or redirect visitors from an old domain to a new one.
  • Streams: Handle non-HTTP connections like SSH or MQTT.
  • 404 Hosts: Prevent access to non-configured domains.
  • Access Lists: Restrict access to sensitive or critical resources.