Technical Anshu Home › Tutorial › Installazione di Nginx Proxy Manager
🐳 Proxy inverso Docker

Installazione di Nginx Proxy Manager - Guida all'installazione in 2 minuti

I tuoi servizi attualmente risiedono in indirizzi brutti come 192.168.1.50:8080. Nginx Proxy Manager li trasforma in nomi puliti come app.tuodominio.com con HTTPS gratuito, installato con un file Docker Compose e gestito da un semplice pannello Web invece che da file di configurazione scritti a mano.

✍️ Technical Anshu🐳 Docker Compose🎧 Multi-Language Audio
Installazione di Nginx Proxy Manager - Guida all'installazione in 2 minuti
🎧 Multi-Language Audio: Video player [Settings] (⚙️) ➔ [Audio Track]

📑Capitoli

  1. Cosa fa un proxy inverso: una porta per tutti i tuoi servizi
  2. Cosa ti serve prima di iniziare: Docker, un dominio e porte raggiungibili
  3. Punta il DNS del tuo dominio al server prima di installare qualsiasi cosa
  4. Crea la cartella e il file docker-compose.yml
  5. Avvia Nginx Proxy Manager con un comando
  6. Primo accesso: il passaggio dell'account amministratore che tutti sbagliano
  7. Crea il tuo primo host proxy, campo per campo
  8. Ottieni il certificato gratuito Lets Encrypt HTTPS e attiva Forza SSL

📋 Panoramica e guida passo passo

1

Cosa ti serve prima di iniziare

Devono esistere tre cose prima che Nginx Proxy Manager (NPM) possa funzionare. Innanzitutto, un server Linux o un PC con Docker e Docker Compose già installati e funzionanti: NPM viene eseguito come contenitore, non come un normale programma. In secondo luogo, un nome di dominio di cui è possibile modificare il DNS, poiché ogni servizio ha il proprio sottodominio. In terzo luogo, il router o il firewall cloud devono essere in grado di inoltrare le porte 80 e 443 a questa macchina.

📌 Riguardo i "2 minuti" nel titolo: l'avvio del container stesso è davvero rapido, ma solo una volta che Docker è già installato e la preparazione descritta in questa guida è terminata. Su una macchina nuova, attendere il tempo necessario per la configurazione, il DNS e i passaggi del certificato; il totale onesto è più lungo di due minuti.
⚠️ Su una connessione domestica dietro CGNAT, il port forwarding non può funzionare affatto: nessuna impostazione all'interno di NPM risolve questo problema. Le opzioni oneste quindi sono un IP pubblico/statico dal tuo ISP, un piccolo VPS noleggiato o uno strumento tunnel. Non saltare questo controllo: la metà di tutte le storie "NPM non funziona" sono in realtà storie "le porte non hanno mai raggiunto il server".
2

Punta prima il DNS del tuo dominio al server

NPM instrada il traffico per nome e Lets Encrypt emette certificati solo per nomi che puntano in modo dimostrabile al tuo computer, quindi il nome deve essere risolto prima di creare qualcosa su di esso. Presso il tuo registrar o host DNS, aggiungi un record A: il Nome è solo la parola del sottodominio (ad esempio app) e il Valore è l'indirizzo IP pubblico del tuo server. Ogni servizio ottiene il proprio record e tutti possono puntare allo stesso IP: NPM separa i servizi in seguito, per nome. Imposta un TTL breve, ad esempio 300 secondi, durante il test, in modo che gli errori svaniscano in pochi minuti invece che in ore.

Dimostralo prima di continuare: controlla che il nome riconosca il tuo IP pubblico da una rete esterna (ad esempio dal tuo telefono con Wi-Fi disattivato). Richiedere un certificato contro gli sprechi DNS non funzionanti consente di crittografare i tentativi e i ripetuti fallimenti possono limitarti per ore. L'ordine è importante: prima il DNS, secondo l'host proxy, terzo il certificato.

3

Crea la cartella e il file di composizione

Crea una cartella per NPM sul server e salva il file sottostante al suo interno come docker-compose.yml. Questo singolo file rappresenta l'installazione completa. Il nome dell'immagine è l'immagine ufficiale della comunità. Le porte 80 e 443 sono le porte pubbliche, la porta 81 è il pannello di amministrazione e i due volumi sono dove risiede l'intera configurazione: ./data contiene il database con tutti i tuoi host proxy e ./letsencrypt contiene i tuoi certificati. Perdi quelle due cartelle e perderai l'intera configurazione: esegui il backup una volta che le cose sono in esecuzione.

docker-compose.yml
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '443:443'
      - '81:81'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

La riga restart: less-stopped ripristina automaticamente NPM dopo un riavvio.

4

Avvia il Gestore proxy Nginx

Dall'interno di quella cartella, esegui il comando start. Docker scarica l'immagine e avvia il contenitore in background.

Terminal
docker compose up -d

Controlla che sia in esecuzione:

Terminal
docker ps

Dovresti vedere il contenitore elencato con le porte 80, 443 e 81. Su un server piccolo il primo avvio richiede un minuto o due mentre viene creato il database. Se il contenitore continua a riavviarsi, i log mostrano il motivo in linguaggio semplice:

Terminal
docker compose logs

Nove volte su dieci un ciclo di riavvio è una porta già utilizzata da qualcos'altro sull'host, di solito un vecchio server Web ancora in esecuzione.

5

Primo accesso: proteggi immediatamente l'account amministratore

Apri il pannello di amministrazione in un browser sulla tua rete:

Browser Address Bar
http://your-server-ip:81

Fallo nel primo minuto. A seconda della build, NPM ti chiede di sostituire i noti dettagli dell'amministratore del primo accesso con la tua email e una password complessa oppure, sulle build più recenti senza account predefinito, la prima persona che apre la pagina di amministrazione crea l'amministratore. In ogni caso, la regola è la stessa: imposta il tuo account amministratore nel momento in cui viene avviato il contenitore, prima di creare qualsiasi altra cosa, e utilizza una vera casella di posta: e-mail NPM che risolvono i problemi dei certificati.

⚠️ Non lasciare mai la porta 81 raggiungibile pubblicamente mentre la "finisci più tardi". Chiunque su Internet trovi per primo il pannello possiede il tuo proxy. Mantieni il pannello di amministrazione solo sulla tua rete.
6

Crea il tuo primo host proxy

In NPM apri Host → Host proxy → Aggiungi host proxy e compila il modulo come una frase: "questo nome va a quel servizio interno":

Nomi di dominio: app.tuodominio.com: il nome pubblico esatto del passaggio 2, che deve già essere risolto sul tuo server.
Schema: http per la maggior parte delle app per casa e ufficio. Lo schema descrive la connessione tra NPM e il servizio interno, non ciò che i visitatori utilizzano: NPM gestisce la crittografia pubblica alla porta. Scegli https qui solo quando l'app interna stessa supporta HTTPS.
Nome host/IP inoltro: l'indirizzo interno del servizio, ad esempio 192.168.1.50.
Porta di inoltro: la porta su cui il servizio è effettivamente in ascolto, ad esempio 8080 - non 80 o 443; quelle sono le porte di NPM, non quelle del servizio.

Attiva Blocca exploit comuni, quindi Salva. Provalo immediatamente aprendo il nome in un browser, idealmente dal tuo telefono con il Wi-Fi disattivato, in modo da testare il vero percorso pubblico.

✅ Un 502 Bad Gateway da NPM è un segnale, non un fallimento: significa che il mondo esterno ha raggiunto NPM perfettamente e solo l'ultimo hop interno - nome host o porta - è sbagliato. Correggi quel campo, non l'intera configurazione. Un'altra trappola: se il servizio viene eseguito in un altro contenitore Docker, localhost è sbagliato (all'interno del contenitore di NPM, localhost significa NPM stesso): utilizza l'IP LAN del server con la porta pubblicata o metti entrambi i contenitori sulla stessa rete Docker e utilizza il nome del contenitore.
7

Ottieni il certificato gratuito Lets Encrypt HTTPS

Fallo solo dopo che l'host semplice del passaggio 6 funziona già: HTTPS su un host danneggiato ti fornisce un host danneggiato con un certificato e il doppio dei posti in cui cercare l'errore. Apri lo stesso host proxy, vai alla scheda SSL, imposta Certificato SSL su Richiedi un nuovo certificato SSL, attiva Forza SSL e Supporto HTTP/2, accetta i Termini di servizio di Lets Encrypt e Salva. Ricarica il sito: ora il browser dovrebbe mostrare il lucchetto su https.

Come funziona: Lets Encrypt dimostra che controlli il nome chiedendo al tuo server, tramite Internet pubblico sulla porta 80, di mostrare un token monouso (la sfida HTTP-01). Questo è il motivo per cui il DNS che punta a te e una porta 80 raggiungibile non sono negoziabili: se fallisci uno di essi, la richiesta fallirà e l'errore è nella configurazione, mai in Let's Encrypt. Forza SSL reindirizza automaticamente ogni visitatore http a https; senza di essa la porta non criptata resta aperta accanto a quella criptata.

📌 I certificati durano 90 giorni e NPM li rinnova automaticamente, in genere circa un mese prima della scadenza, utilizzando la stessa prova della porta 80. Se un rinnovo fallisce, controlla prima le cause noiose: il DNS è stato modificato, l'inoltro del router è stato rimosso o la porta 80 è stata bloccata. Abilita HSTS solo una volta stabilito il servizio e verificati i rinnovi: è una promessa forte che i browser ricorderanno per mesi.

🏷️Variabili e parole chiave di ricerca argomento

🔍 Nginx Proxy Manager 🔍 Reverse Proxy 🔍 Docker Compose 🔍 Lets Encrypt 🔍 Free HTTPS 🔍 Proxy Host 🔍 TechnicalAnshu 🔍 Self Hosting 🔍 Subdomain Setup 🔍 Port 80 443 81 🔍 Force SSL 🔍 Home Server
🎙️ Trascrizione completa: tocca per espandere

__TOK_34__

__TOK_35__

__TOK_36__

❓ Domande frequenti

Questo tutorial è gratuito al 100%?

__TOK_37__

I principianti possono seguire questa guida?

__TOK_38__

Dove posso porre domande se rimango bloccato?

__TOK_39__

🚀 Guarda il tutorial completo su YouTube

__TOK_40__

__TOK_41__

♥️ Guarda il video completo
Questo tutorial è basato sul video di installazione di Nginx Proxy Manager di Technical Anshu • Bloccato in qualche passaggio? Chiedi nei commenti del video: lì riceverai aiuto 🙏