GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Nginx Proxy Manager Synology NAS Istruzioni per la configurazione!

Oggi vedremo come configurare Nginx Proxy Manager su un Synology NAS.

Se stai esponendo servizi sulla tua rete, l'utilizzo di un proxy inverso è un ottimo modo per aumentare la sicurezza e le prestazioni. Un proxy inverso è un server che si trova di fronte ai server Web e inoltra le richieste dei client ai server Web. In parole povere, devi solo esporre un server (usando le porte 80/443) e sarai in grado di esporre tutti i servizi web che desideri.

Questo è un esempio del flusso di rete di un proxy inverso (semplificato):

Tieni presente che questa è un'alternativa al Portale delle applicazioni di Synology in cui puoi configurare un proxy inverso. Se le tue intenzioni sono solo creare un proxy inverso, potresti invece utilizzarlo, poiché non è necessaria alcuna configurazione (a parte le impostazioni del proxy inverso)!

1. Istruzioni per la configurazione – Nginx Proxy Manager Synology NAS

Questo tutorial utilizzerà un Synology NAS e Docker. Poiché Nginx Proxy Manager utilizza un database, dovremo installare due contenitori diversi. Uno per il nostro database e uno per Nginx Proxy Manager. Per impostazione predefinita, Synology utilizza le porte 80 e 443, quindi l'utilizzo della nostra interfaccia di rete host non è l'ideale. Per questo motivo, creeremo un'interfaccia di rete macvlan (in Docker) che ci consentirà di aggirare questo conflitto di porte.

1. Installa Docker dal pacchetto di Synology Centro .

2. Abbiamo bisogno di creare alcune cartelle che mapperemo i nostri contenitori Docker. Per impostazione predefinita, il pacchetto Docker creerà una cartella denominata docker al termine dell'installazione. All'interno di questa cartella creeremo una cartella denominata mariadb e nginx-proxy .

3. All'interno del nginx-proxy cartella, crea due sottocartelle denominate dati e letsencrypt .

4. Crea e carica un file denominato config.json al proxy nginx cartella. Questo file deve contenere i contenuti seguenti. Assicurati di modificare SYNOLOGY_NAS_IP nell'indirizzo IP di Synology NAS!

{
   "database": {
   "engine": "mysql",
   "host": "SYNOLOGY_NAS_IP",
   "name": "nginxproxymanager",
   "user": "nginxproxymanager",
   "password": "nginxproxymanager",
   "port": 3306
  }
}

5. La configurazione della cartella è completa!

1.1 Configurazione dell'interfaccia di rete Docker Macvlan e Bridge

1. Assicurati di poter SSH nel tuo Synology NAS. Apri Controllo Pannello , seleziona Terminale e SNMP e Abilita SSH servizio. Se stai utilizzando il firewall di Synology, assicurati di consentire il traffico sulla porta 22. Ho creato un video su come eseguire l'SSH in Synology NAS in caso di problemi.

2. SSH nel tuo Synology NAS usando il tuo strumento SSH preferito.

3. Abbiamo bisogno di creare un'interfaccia di rete Docker macvlan. Innanzitutto, è necessario determinare quali interfacce di rete esistono attualmente (sul Synology NAS) e annotare il nome dell'adattatore. Per fare ciò, eseguire il comando seguente e annotare il nome dell'interfaccia di rete che ha l'indirizzo IP del Synology NAS (in questo esempio, il mio è eth0).

ifconfig

4. Successivamente, è necessario eseguire il comando seguente durante la sostituzione della sottorete corretta (la maggior parte sono 192.168.1.0/24 o 192.168.0.0/24 per impostazione predefinita). Devi anche scegliere un indirizzo IP che desideri utilizzare che non è attualmente in uso. Userò 192.168.1.198. NOTA :npm_network sarà il nome della rete (puoi sostituirlo a tuo piacimento).

sudo docker network create -d macvlan -o parent=eth0 --subnet=192.168.1.0/24 --gateway=192.168.1.1 --ip-range=192.168.1.198/32 npm_network

5. La nostra rete è ora creata. Ora possiamo uscire dalla nostra sessione SSH e disabilitarla in DSM (se non la utilizzerai). Se lo stai disabilitando e hai creato una regola firewall per esso, dovresti disattivare anche la regola firewall.

6. Successivamente, dobbiamo creare una rete bridge. Questo è ciò che consentirà al nostro host (NAS) di comunicare con il nostro contenitore Nginx Proxy Manager. Apri Docker e vai alla Rete sezione. Seleziona Aggiungi e inserisci una sottorete che non è attualmente in uso. L'indirizzo IP del bridge che sto creando sarà 192.168.10.2.

7. Entrambe le interfacce di rete sono state configurate!

1.2 Installazione e configurazione di MariaDB

Nginx Proxy Manager richiede la configurazione di un database affinché funzioni correttamente. Sebbene Synology offra un pacchetto MariaDB, mi piace separarlo creando un secondo contenitore Docker solo per il database.

1. Apri Docker , vai al Registro e cerca MariaDB . Scarica le più recenti versione di MariaDB .

2. Al termine del download dell'immagine, vai all'Immagine sezione e fai doppio clic su mariadb per impostare un nuovo contenitore.

3. Assegna un nome al contenitore, quindi seleziona Avanzate Impostazioni .

4. Seleziona Abilita riavvio automatico .

5. Nel Volume sezione, seleziona Aggiungi Cartella e quindi seleziona mariadb cartella che abbiamo creato in precedenza. Nel Monte Percorso sezione, digita /var/lib/mysql .

6. Nel Porto Impostazioni sezione, cambia la porta locale in 3306 . NOTA :Se devi usare qualcosa di diverso da 3306 come porta, devi aggiornare config.json file che abbiamo creato in precedenza.

7. Nell'ambiente sezione, dobbiamo creare quattro variabili. Queste variabili sono ciò che memorizzerà la nostra password di root, il nome del database, il nome utente e la password. NOTA :se non vuoi utilizzare i valori sottostanti (nginxproxymanager), puoi cambiarli come preferisci. Assicurati solo di aggiornare il file config.json che abbiamo creato in precedenza con le nuove informazioni.

8. Seleziona Applica e crea il contenitore. Il database è stato creato!

1.3 Configurazione del firewall – Nginx Proxy Manager Synology NAS

Poiché stiamo utilizzando un'interfaccia di rete macvlan, non ci sono regole del firewall che dobbiamo impostare per Nginx Proxy Manager. Tuttavia, il contenitore MariaDB utilizza l'interfaccia di rete host e, per questo motivo, necessita di una regola firewall per consentire il traffico. Se non hai configurato il firewall di Synology, ho creato un tutorial su come farlo (e ti suggerisco di farlo).

1. Apri il controllo Pannello , seleziona Sicurezza , quindi Firewall . Seleziona Modifica regole e aggiungi un consenti regola per la porta 3306 . NOTA :Se stai usando una porta diversa nel file config.json che abbiamo creato sopra, dovrai usare quella porta invece di 3306.

1.4 Configurazione del contenitore Nginx Proxy Manager – Synology NAS

1. Apri Docker , vai al Registro e cerca nginx-proxy-manager . Scarica le più recenti versione di jc21/nginx-proxy-manager .

2. Al termine del download dell'immagine, vai all'Immagine sezione e fai doppio clic su jc21/nginx-proxy-manager per impostare un nuovo contenitore.

3. Assegna un nome al contenitore e seleziona Avanzate Impostazioni .

4. Seleziona Abilita riavvio automatico .

5. Nel Volume sezione, dobbiamo creare due mappature di cartelle e una mappatura di file. Seleziona Aggiungi cartella e aggiungi i dati cartella e aggiungi il percorso di montaggio /data . Quindi, seleziona letsencrypt cartella e aggiungi il percorso di montaggio /etc/letsencrypt . Seleziona Aggiungi Archivio e seleziona config.json file che abbiamo creato in precedenza con il percorso di montaggio /app/config/production.json .

6. In Rete , aggiungi la npm_network e npm_bridge reti e rimuovere ponte.

7. Abbina il Porto Impostazioni per essere come l'immagine qui sotto. Se stai usando 4443, 8080 o 8081 per qualsiasi cosa, puoi cambiare le porte con qualcosa che non è attualmente in uso.

8. Seleziona Applica e crea il contenitore! Concedi al contenitore qualche minuto e dovresti essere in grado di accedere al portale di amministrazione web tramite l'indirizzo IP npm_network e la porta 81!

http://[npm_network]:81

2. Configurazione di Nginx Proxy Manager – Synology NAS

1. Accedi con l'indirizzo email [email protetta] e password cambiami .

2. Quando richiesto, cambia nome e indirizzo e-mail, quindi imposta la password.

3. Nginx Proxy Manager è ora configurato! Assicurati di portare avanti porte 80 e 443 sul tuo router al macvlan rete che abbiamo creato sopra.

ERRORE GATEWAY ERRATO

Alcune persone riscontrano errori di "gateway errato" quando tentano di accedere. Dopo aver risolto il problema per un po' (e alcuni suggerimenti utili nei commenti), ci sono davvero due modi per risolverlo :

1. Se il tuo NAS ha più NIC e hai più indirizzi IP assegnati, nel file "config.json", inserisci l'altro indirizzo IP del tuo NAS.

2. Mantieni l'interfaccia di rete del ponte mobile predefinita collegata a entrambi i contenitori e utilizza quell'indirizzo IP nel file config.json.

3. Utilizzo di Nginx Proxy Manager

Ora che abbiamo configurato Nginx Proxy Manager, è importante sapere come usarlo! Ho creato un tutorial che puoi seguire che ti mostrerà come esporre Plex e configurare un certificato SSL. Il tutorial è abbastanza semplice, ma mette in evidenza come puoi esporre praticamente qualsiasi server web in modo rapido, semplice e sicuro!

4. Conclusione

Questo è stato un tutorial abbastanza complesso, ma spero che sia sufficientemente suddiviso per essere facilmente compreso. Non è normale che sia necessario configurare due contenitori Docker diversi per far funzionare un contenitore, ma secondo me questo è il modo migliore per far funzionare Nginx Proxy Manager su un Synology NAS.

Grazie per aver letto il tutorial. Se hai domande, lasciale nei commenti!


Docker
  1. Dove sono archiviati le immagini Docker, i contenitori e i volumi nel sistema host Linux?

  2. Come utilizzare Rsync e SSH in una pipeline CI GitLab Dockerized

  3. Spiegazione dei volumi Docker con esempi

  4. Come distribuire e gestire un contenitore Docker MongoDB

  5. Come eseguire il backup di un contenitore Docker

Come installare Yarn su Debian 10

Che cos'è GNOME, KDE, MATE, Unity ecc? – Gestori di finestre e ambienti desktop

Come installare Opera Browser su Linux Mint 20

Legame di rete in Alma Linux

Installa e usa WinSCP

Come installare Cockpit su CentOS 7 / RHEL 7 e Fedora 28