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
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
.
- Une application Nextcloud sur
- Vous configurez des proxy hosts comme suit :
cloud.mondomaine.com
-> redirige vershttp://192.168.1.10:8080
.home.mondomaine.com
-> redirige vershttp://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é versnewsite.com
. - Configuration :
oldsite.com
-> redirection vershttps://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 viassh.mondomaine.com
. - Configuration :
- Stream TCP :
ssh.mondomaine.com:22
->192.168.1.30:22
.
- Stream TCP :
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.
- Autorise uniquement les IPs locales (
- Configuration pour
admin.mondomaine.com
:- Access List :
IP locale uniquement
. - Appliqué au proxy host correspondant.
- Access List :
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.