Come utilizzare Nginx Proxy Manager

Come utilizzare Nginx Proxy Manager
Nginx è un popolare server Web e il proxy inverso utilizzato per instradare il traffico e reindirizzarlo su un altro server. L'impostazione di NGINX come proxy inverso può richiedere molto tempo e soggetto a errori e sbagliate configurazioni. Questa guida ti mostrerà come impostare e utilizzare NGINX Proxy Manager per una gestione e configurazione più facili. Prima di immergersi nel tutorial, ci sono alcuni prerequisiti. Avrai bisogno:
  1. Un server Linux
  2. Docker e Docker Composi installati sul server
  3. Root o utente con autorizzazioni sudo

Se hai tutto questo, lasciaci entrare.

Cos'è il gestore proxy nginx?

Ninx Proxy Manager (NPM) è un sistema di gestione proxy inverso in esecuzione su Docker. NPM si basa su un server Nginx e fornisce agli utenti un'interfaccia Web pulita, efficiente e bella per una gestione più facile. Lo strumento è facile da configurare e non richiede agli utenti di sapere come lavorare con server NGINX o certificati SSL. NPM è uno strumento open source mantenuto dagli sviluppatori di tutto il mondo. È adatto per ambienti di piccoli server e ambienti di laboratorio privato. Questo tutorial si concentrerà su come mostrarti come distribuire il gestore proxy nginx:

Installazione di docker e sqlite

NGINX Proxy Manager funziona come container Docker; Pertanto, richiede un composizione Docker e Docker installata sul server. Per motivi di semplicità, illustrerò solo come installare Docker su Ubuntu. Fare riferimento alla documentazione Docker per riferimento su come configurarla su altri sistemi. Per installare Docker su Ubuntu, inizia rimuovendo le vecchie installazioni Docker. Salta questo se nessuno è disponibile.

sudo apt-get rimuovi docker docker.Io Containerd Runc

Quindi, installa il repository e tutte le dipendenze utilizzando i comandi:

Sudo Apt-get Aggiornamento
sudo apt-get installa apt-transport-https ca-certificates curl gnupg lsb-release -y

Aggiungi la chiave GPG del repository Docker:

Curl -fssl https: // download.Docker.com/linux/ubuntu/gpg | sudo gpg--dearmor -o/usr/share/keyrings/docker-archive-keyring.gpg

Quindi, aggiungi il repository stabile utilizzando il comando Echo come:

echo "deb [arch = amd64 firmato da =/usr/share/keyrings/docker-archive-keyring.gpg] https: // download.Docker.com/linux/ubuntu \
$ (lsb_release -cs) stabile "| sudo tee/etc/apt/fonti.elenco.D/Docker.Elenco> /dev /null

Infine, aggiorna i repository e installa Docker utilizzando i comandi:

Sudo Apt-get Update && sudo apt-get install docker-ce docker-ce-cli containerd.IO Docker -compose -y

Ora esegui Docker e Abilita all'avvio:

sudo systemctl abilita docker.servizio
sudo systemctl avvia docker.servizio
sudo systemctl abilita containerd.servizio

Installa sqlite

Il prossimo passo è installare il database SQLite che utilizzeremo per eseguire NPM. È bene notare che è possibile utilizzare anche il database MySQL.

Distribuire NPM su Docker

Per distribuire il gestore proxy nginx, dobbiamo creare un file di composizione Docker per eseguire Docker e inizializzare il contenitore. Per saperne di più sul file di compositore Docker e su come funziona, considera le risorse collegate qui. Ti consiglio vivamente di creare il file Docker-Opgose in una directory che hai le autorizzazioni complete.

Nano Docker-Opse.Yaml

Quindi, aggiungi le seguenti righe al file di composizione, salva e chiudi.

Versione: "3"
Servizi:
App:
Immagine: "JC21/nginx-proxy-manager: ultimo"
Riavvia: sempre
Porte:
# Porta http
- '80: 80 '
# Porta https:
- '443: 443'
# UI di amministrazione
- '81: 81 '
ambiente:
Db_sqlite_file: "/data/npm.sqlite "
Volumi:
- ./dati:/dati
- ./letSencrypt:/etc/letSsCrypt

Infine, esegui il comando Docker-Opose come:

docker -compose up -d

Questo distribuirà lo stack dall'immagine NPM specificata nel file Docker-Opse. Output della creazione:

Creazione di rete "Debian_Default" con il driver predefinito
APP APP (JC21/NGINX-PROXY-Manager: ultimo) ..
Ultimo: estrazione da JC21/Nginx-Proxy-Manager
801BFAA63EF2: pull completo
7927CD3BBE4C: pull completo
F53B85628DA5: pull completo
E834C30791F9: pull completo
6B68B3708DD5: pull completo
963fe519b5fd: pull completo
37e54d057f10: pull completo
-------------------------------------
Digest: sha256: b33aab798a6150ba7dd238d36936d0882a312c983a0b3eb261a6dcbd5e6a3425
Stato: più recente immagine più recente per JC21/NGINX-PROXY-Manager: Ultimo
Creazione di debian_app_1 ... fatto

Accesso all'interfaccia utente NPM

Una volta creato ed in esecuzione, è possibile accedere all'interfaccia utilizzando l'indirizzo IP e la porta specificati nel file Docker-Ongose. In questo caso, porta 81.

http: // ip: 81

Sarebbe meglio se atterrassi sull'interfaccia utente di accesso NPM. Immettere il nome utente e la password come:

[email protected] e changeme, rispettivamente.

Al momento dell'accesso iniziale, dovrai aggiornare i dettagli dell'amministratore.

Una volta aggiornati tutti i dettagli dell'utente, arriverai alla dashboard principale da dove è possibile configurare i tuoi host proxy:

Lavorare con NPM

Avendo installato e assicurato che il gestore proxy sia in esecuzione, possiamo aggiungere un host proxy per esporre un servizio in esecuzione sul server. Passare agli host - host proxy e fare clic su Aggiungi host proxy.

Seleziona lo schema come HTTP o HTTPS. Se il servizio che desideri esporre non supporta il traffico HTTPS, attenersi a HTTP. Quindi, aggiungi i nomi di dominio, il nome host in avanti e l'IP. È inoltre possibile selezionare gli exploit comuni a blocchi per una maggiore sicurezza.

Dopo aver esposto il servizio, prova ad accedervi utilizzando il nome host o la porta specificati. Questo servizio dovrebbe essere accessibile. Puoi anche gestire il proxy nell'elenco host proxy.

Elenco di accesso NPM

In alcuni casi, potrebbe essere necessario esporre un'applicazione o un servizio nell'elenco proxy NPM a indirizzi IP specifici. Per configurare questo, è possibile utilizzare l'elenco di accesso NPM.

Passare all'elenco degli accessi e fare clic su Aggiungi elenco proxy. Qui, dai loro un elenco di accesso un nome; Puoi anche selezionare soddisfare qualsiasi.

Nella scheda Autorizzazione, imposta i nomi utente e le password che utilizzerai per accedere al servizio.

Passa alla scheda Accesso e aggiungi gli indirizzi IP che si desidera consentire le connessioni e negare tutti gli altri.

Per allegare l'elenco di accesso a un'applicazione Web specifica, accedi agli host - host proxy e seleziona l'host. Fare clic su Modifica e impostare l'elenco Accessi come definito sopra.

Provvigionamento di certificati SSL

NPM consente inoltre di fornire certificati SSL su vari nomi di dominio. Prima di aggiungere un nome di dominio alla disposizione SSL, assicurarsi che il dominio puntino al server proxy NPM.

Passare ai certificati SSL e fare clic su Aggiungi certificato SSL. Fornire i nomi di dominio e l'indirizzo e -mail per let's cript. Infine, accetta i termini di servizio e salva. Puoi anche aggiungere una sfida DNS, ma non lo coprirò in questo tutorial.

Questo creerà un nuovo certificato SSL di fiducia.

Personalizza la home page

È inoltre possibile personalizzare la pagina Web predefinita per il server NPM. Fare clic su Impostazioni - Sito predefinito e selezionare Modifica. Puoi scegliere di mostrare un errore 404, reindirizzare a un nuovo indirizzo o creare una pagina personalizzata.

Ad esempio, di seguito è riportato un codice HTML per mostrare 403 proibiti.







403 - proibito


Fonte: codepen https: // codepen.io/blecaf/pen/nloepy

Conclusione

Questo tutorial ha esaminato l'installazione e la distribuzione del gestore proxy nginx su un server Ubuntu che esegue Docker. Abbiamo quindi trattato come configurare NPM e aggiungere host al gestore proxy.

Ricorda: la sperimentazione costante è la chiave per la padronanza, quindi sperimenta via!