Nginx Proxy Manager: Guida all'installazione con docker
Nginx Proxy Manager (NPM) è uno strumento potente e user-friendly progettato per semplificare la gestione di server proxy Nginx. Pensato per utenti di tutti i livelli, NPM offre un’interfaccia grafica intuitiva che permette di configurare e gestire in modo efficace i tuoi proxy, senza la necessità di scrivere manualmente file di configurazione Nginx complessi.
Come funziona Nginx?
Immagina Nginx come se fosse un postino.
• Riceve le lettere: Quando tu (il client) cerchi di raggiungere un sito web (il destinatario), la tua richiesta (la lettera) arriva prima a Nginx.
• Inoltra le lettere: Invece di consegnare direttamente la lettera, Nginx la prende e la inoltra al destinatario corretto (il server web dove si trova il sito).
• Riceve le risposte: Il server web elabora la richiesta e invia la risposta (la lettera di risposta) a Nginx.
• Consegna le risposte: Nginx riceve la risposta e la inoltra a te, così puoi vedere il contenuto del sito web.
Perché usare un postino (Nginx)?
• Velocità : Nginx è molto veloce nell’inoltrare le lettere, rendendo i siti web più rapidi.
• Sicurezza: Può proteggere il tuo sito web da attacchi e può crittografare le comunicazioni (HTTPS).
• Flessibilità : Può fare molte altre cose oltre a inoltrare le lettere, come bilanciare il carico tra diversi server o memorizzare nella cache le risposte per renderle ancora più veloci.
Requisiti:
> Dominio;
> VPS con indirizzo IP Statico (attenzione ai limiti di banda);
> 5 minuti del tuo tempo;
Assicuriamoci di aver installato sul nostro server docker e docker compose, se non hai idea di come fare ho scritto una guida a riguardo (Come installare Docker e Docker Compose).
A questo punto possiamo passare all’installazione di NPM, rechiamoci nella nostra cartella dove abbiamo tutti i file di configurazione dei vari container docker (nel mio caso /home/user/docker) e creiamo un file chiamato docker-compose.yml
cd /home/user/docker
nano docker-compose.yml
A questo punto nell’editor di testo copiamo il seguente codice:
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest' #Scarica l'ultima versione di NPM
restart: unless-stopped
ports:
- '80:80'
- '81:81' #Puoi cambiare la porta, questa espone la pagina d'accesso di NPM
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
networks:
default:
name: my-main-net
external: true
Salviamo il file con il consueto CTRL+X e “Y” per confermare, e successivamente inziamo a fare il “pull” ovvero a scaricare l’immagine dal docker hub
docker compose pull
Se tutto fila liscio con il “pulling” possiamo procedere all’avvio del container, lanciamo il comando:
docker compose up -d
A questo punto, collegghiamoci dal nostro browser all’indirizzo http://IPDELSERVER:PORTASCELTA, ed effettuiamo il LOG-IN, di base le credenziali predefinite sono:
Email: [email protected]
Password: changeme
Al primo accesso ci verrĂ chiesto di cambiarle, procediamo e ci ritroveremo in una schermata simile a questa:
Quello che dobbiamo andare a fare noi adesso è far puntare tutto il traffico “*.dominio.com” all’indirizzo IP del server dove si trova NPM.
In questa guida io utilizzerò Cloudflare potrebbe cambiare in base al Vs. provider di dominio, in ogni caso quello che dobbiamo fare noi è registrare un dominio di tipo “A” “*.dominio.com” che punti all’indirizzo IP della nostra VPS
A questo punto torniamo su NPM e registriamo il nostro primo “subdomain”, per farlo rechiamoci nella sezione Proxy Host, successivamente clicchiamo sulla voce Add Proxy Host e completiamo le voci così come in questo esempio:
Domain Names: nginx.dominio.com
Scheme: http (perché il servizio è esposto sullo schema http)
Forward Hostname / IP: dobbiamo inserire l’indirizzo IP del nostro VPS
Forward Port: dobbiamo inserire la porta nella quale è esposto il servizio in questo caso 81
Spuntiamo le caselle Cache Assets, Block Common Exploits e Websockets Support
Successivamente rechiamoci nella sezione SSL e nella casella SSL Certificate clicchiamo sulla voce Request a new SSL Certificate, successivamente tutte le voci Force SSL, HTTP/2 Support, HSTS Enabled e HSTS Subdomains, inseriamo un indirizzo email per i certificato Let’s Encrypt ed accettiamo termini e condizioni e clicchiamo su “Save”
A questo punto collegandoci su https://nginx.dominio.com saremo in grado di collegarci al nostro nginx proxy manager con connessione sicura HTTPS.
Certificati SSL Gratuiti con Cloudflare
Se non vuoi utilizzare Let’s Encrypt si può, in alternativa, generare una coppia di certificati gratuiti con Cloudflare, per farlo andiamo nella pagina principale del nostro dominio su Cloudflare, clicchiamo su SSL/TLS successivamente su Server di origine e su Crea certificato
Lasciamo le impostazioni predefinite e clicchiamo su Crea.
Ci apparirà la pagina con i certificati, “Certificato origine” e “Chiave privata”.
Creiamo due file di testo, uno lo chiameremo certificato.pem e l’altro certificato.key, inseriamo all’interno del file .pem il certificato di origine ed all’interno del file .key la chiave privata, salviamo ed andiamo sulla nostra istanza nginx.
Rechiamoci nella sezione SSL Certificates e clicchiamo su Add SSL Certificate successivamente su Custom.
Inseriamo il nome che desideriamo, carichiamo su “Certificate Key” il file .key mentre su “Certificate” il file .pem e successivamente Salviamo.
Modifichiamo adesso l’impostazione su Cloudflare di modalità di crittografia SSL/TLS su “Completa”
E siamo apposto, adesso quando creiamo un nuovo host (o vogliamo modificare uno giĂ creato) abbiamo la possibilitĂ di scegliere come certificato questo di Cloudflare con durata 15 anni.
Spero che l'articolo sia stato di tuo gradimento, se vuoi altri contenuti simili non esitare a farmelo sapere sul Gruppo Telegram.
Se ti piacciono i miei contenuti e vuoi supportarmi puoi iscriverti alla Newsletter, effettuare una donazione o acquistare attraverso il mio link referral di Amazon, trovi tutti i link qui.
Considera anche l'idea di iscriverti al mio canale delle offerte, lo trovi su WhatsApp e su Telegram.