Cos’è Nginx?
Nginx è un web server open source molto utilizzato in ambiente Linux.
Oltre a pubblicare siti web, Nginx viene spesso utilizzato come reverse proxy, ovvero come punto di ingresso unico per diversi servizi.
In pratica, invece di esporre direttamente ogni applicazione verso internet, tutte le richieste vengono ricevute da Nginx, che successivamente le inoltra al servizio corretto.
Esempio:
Internet
|
|
Nginx Proxy Manager
-----------------------
| | |
Vaultwarden Nextcloud Grafana
Perché Nginx Proxy Manager?
Configurare Nginx manualmente richiede la modifica dei file di configurazione e una buona conoscenza della sua sintassi.
Nginx Proxy Manager semplifica questa gestione fornendo un’interfaccia grafica attraverso la quale è possibile creare reverse proxy, gestire domini e configurare certificati HTTPS senza modificare manualmente i file di Nginx.
I principali vantaggi sono:
- Interfaccia grafica: gestione semplice tramite dashboard web.
- Certificati SSL automatici: integrazione con Let’s Encrypt per HTTPS.
- Gestione centralizzata: permette di pubblicare più servizi tramite un unico punto di accesso.
- Configurazione semplificata: non è necessario scrivere manualmente le configurazioni Nginx.
Requisiti
Prima di procedere assicurati di avere:
- Un server con indirizzo IP pubblico statico (necessario se vuoi pubblicare servizi su internet);
- Un dominio o un sottodominio (necessario se vuoi pubblicare servizi su internet);
- Docker e Docker Compose installati;
- Le porte 80 e 443 disponibili;
Installazione
In questa guida utilizzeremo Docker Compose per installare Nginx Proxy Manager in modo semplice, ordinato e facilmente aggiornabile.
Accedi al tuo server e crea la cartella persistente che conterrà il file compose.yaml e le varie configurazioni per nginx-proxy-manager, per praticità crea una directory data
Esegui sul terminale:
| |
Assegna il ruolo di proprietario al tuo utente:
| |
Recati sulla cartella appena creata e crea il file di configurazione:
Incolla all’interno la seguente configurazione e salva il file:
Adesso puoi effettuare il download dell’immagine:
| |

Avvia il container con:
| |
Firewall
E’ sempre consigliato installare un firewall per limitare le connessioni in ingresso al server:
Esegui:
| |
Imposta i criteri predefiniti. Nega tutto ciò che entra e permetti tutto quello che esce:
Se accedi al tuo server via ssh ricorda di inserire la regola per aprire la porta ssh:
| |
Imposta l’apertura delle porta 80, 81 e 443 per Nginx Proxy Manager:
Applica le modifiche con:
| |
Prima di abilitare il firewall assicurati sempre di aver consentito l’accesso SSH, altrimenti potresti perdere la connessione al server.
Configurazione
Accedi col tuo browser all’indirizzo http://IP_del_SERVER:81:

Inserisci i dati richiesti (Nome ed indirizzo email) e procedi creando una password forte.
Dominio Web
Se la tua intenzione è quella di esporre i tuoi servizi online (es. Vaultwarden, Gotify ecc.) dovrai far puntare tutto il traffico “dominio.com” e/o “*.dominio.com” all’indirizzo IP del server dove si trova NPM, per farlo dovrai registrare due record di tipo “A” che puntino all’indirizzo IP del tuo server:
Tipo Nome Valore
A dominio.com IP_DEL_SERVER
A *.dominio.com IP_DEL_SERVER
Creato il record DNS sul tuo registrar torna su NPM e crea il tuo primo Proxy Host, accedi all’omonima sezione e clicca su “Add Proxy Host” e completa le voci così come da esempio:
- Domain Names: nginx.dominio.com
- Scheme: http (perché in questo esempio il servizio è esposto sullo schema http)
- Forward Hostname / IP: dobbiamo inserire l’indirizzo IP del nostro server, oppure 127.0.0.1
- Forward Port: dobbiamo inserire la porta nella quale è esposto il servizio in questo caso 81
- Spunta le caselle Block Common Exploits e Websockets Support

Recati nella sezione SSL e su “SSL Certificate” clicca dal menù a tendina “Request a new SSL Certificate”, clicca sulle voci Force SSL, HTTP/2 Support, HSTS Enabled e HSTS Subdomains e clicca su “Save”

Adesso puoi accedere alla Web UI di Nginx Proxy Manager attraverso https://nginx.dominio.com con connessione sicura e crittografata HTTPS.
Effettuato l’accesso puoi eliminare il record del firewall dell’apertura della porta 81/tcp, esegui sul terminale:
| |
Dalla lista cerca la voce col commento impostato in precedenza “Nginx Proxy Manager - UI” annota il numero (es. 3) ed eliminala con:
| |
Da questo momento la gestione di Nginx Proxy Manager sarà accessibile esclusivamente tramite il dominio configurato.
