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.
📑Capitoli
- Cosa fa un proxy inverso: una porta per tutti i tuoi servizi
- Cosa ti serve prima di iniziare: Docker, un dominio e porte raggiungibili
- Punta il DNS del tuo dominio al server prima di installare qualsiasi cosa
- Crea la cartella e il file docker-compose.yml
- Avvia Nginx Proxy Manager con un comando
- Primo accesso: il passaggio dell'account amministratore che tutti sbagliano
- Crea il tuo primo host proxy, campo per campo
- Ottieni il certificato gratuito Lets Encrypt HTTPS e attiva Forza SSL
📋 Panoramica e guida passo passo
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.
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.
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.
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.
Avvia il Gestore proxy Nginx
Dall'interno di quella cartella, esegui il comando start. Docker scarica l'immagine e avvia il contenitore in background.
docker compose up -d
Controlla che sia in esecuzione:
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:
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.
Primo accesso: proteggi immediatamente l'account amministratore
Apri il pannello di amministrazione in un browser sulla tua rete:
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.
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.
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.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.
🏷️Variabili e parole chiave di ricerca argomento
🎙️ 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__