Gestione Semplice dell’Host Virtuale con NGINX Proxy Manager

Gestire Proxy e Host Virtuali (VHosts) tramite i file di configurazione di NGINX può diventare noioso man mano che aumenta il numero di host virtuali e servizi web. Come puoi semplificare il processo? Il Gestore Proxy NGINX (NPM).

Continua a leggere e impara a creare, gestire e proteggere gli host virtuali con la console web del Gestore Proxy NGINX.

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Se vuoi seguirla, assicurati di avere quanto segue:

Configurazione di NGINX Proxy Manager

NGINX Proxy Manager non è un pacchetto che installi sul tuo sistema operativo. Invece, NPM è un’app che distribuisci in Docker, ecco perché Docker e Docker Compose sono i requisiti principali.

Segui i passaggi seguenti per iniziare a configurare il tuo NGINX Proxy Manager.

1. Accedi al tuo server Linux tramite SSH o l’ambiente desktop, se presente.

2. Crea e apri un file YAML chiamato docker-compose.yml utilizzando il tuo editor di testo preferito, in questo caso viene utilizzato vi.

vi docker-compose.yml

3. Copia e incolla il seguente codice nell’editor. Questo codice contiene le direttive per scaricare e configurare l’ultima immagine di nginx-proxy-manager. Salva e chiudi il file per tornare alla riga di comando.

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped #Assicurati che il proxy manager sopravviva ai crash
    ports:
      #Permetti l'accesso alle porte dei rispettivi container dalla macchina host
      - '80:80'
      - '81:81' #Porta per il pannello di amministrazione
      - '443:443'
    volumes:
      #Mappa le seguenti directory del container alle rispettive directory dell'host
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

4. Esegui docker-compose per avviare il container in background (-d) secondo le direttive specificate.

docker-compose up -d
Running Docker Compose to set up NGINX Proxy Manager container

5. Esegui il seguente comando per verificare che il container sia in esecuzione.

docker ps

Dovresti vedere un processo in esecuzione corrispondente al container del proxy manager come nell’immagine di esempio sottostante se tutto è corretto.

Listing running Docker containers

Accesso al pannello di amministrazione

Il NGINX Proxy Manager dovrebbe essere ora in esecuzione. Puoi ora accedere al pannello di amministrazione di NPM per eseguire la configurazione iniziale dell’utente amministratore.

1. Apri la finestra del tuo browser e vai su http://:admin-ui-port>. Per comodità, questo tutorial utilizza implicitamente localhost invece di un indirizzo IP, cioè http://localhost:81, per avviare il pannello di amministrazione.

2. Accedi con le credenziali predefinite iniziali dell’indirizzo email [email protected] e la password changeme.

Logging in for the first time

3. Modifica l’account utente predefinito come desideri. Questo tutorial mantiene il Nome completo e il Nickname e cambia solo l’Email in [email protected]. Clicca su Salva per salvare i dettagli dell’utente.

Changing admin user default credentials

4. Digita una nuova password per l’utente nella sezione Cambia password come mostrato di seguito. Digita una password lunga almeno otto caratteri e clicca su Salva.

Changing the default password

Dovresti vedere le modifiche apportate all’account utente qui sotto.

Viewing the user list in NGINX Proxy Manager

Implementazione del Server Web

Ora che hai completato la configurazione iniziale, il tuo prossimo passo è avviare un server web per il tuo host virtuale. Segui i passaggi di questa sezione per avviare rapidamente un servizio web Apache utilizzando Docker Compose.

Apri il file docker-compose.yml che hai creato precedentemente nel tuo editor di testo. Aggiungi il seguente pezzo di codice al file docker-compose.yml

Il vantaggio di utilizzare lo stesso file è che modifichi la rete del contenitore esistente aggiungendo un contenitore basato su httpd registrato con il nome app2 invece che in una rete separata.

app2:
    #Nome personalizzato per riferimento interno al contenitore. Utilizzato per la comunicazione tra contenitori
    image: 'httpd:latest'
    restart: unless-stopped

Il contenuto del file dovrebbe assomigliare allo screenshot sotto. Salva il file ed esci dall’editor.

Adding a web server deployment directive

Esegui docker-compose per avviare il contenitore in background (-d).

docker-compose up -d

Dovresti ricevere un feedback simile allo screenshot sotto, confermando la creazione del secondo contenitore.

Creating and starting the Web server with Docker Compose

Creazione di un nuovo host virtuale

Ora hai un servizio web in esecuzione. Questa sezione mira a consentire l’accesso al web server attraverso le porte pubblicate del NGINX Proxy Manager.

1. Accedi al pannello di amministrazione del NGINX Proxy Manager.

2. Fai clic su Host —> Host Proxy.

Creating a VHOST: Opening the Proxy Host card

3. Fai clic su Aggiungi Host Proxy per avviare la creazione di un host virtuale per il web server

Creating a VHOST: Adding a Proxy Host

4. Compila il modulo Nuovo Host Proxy con i seguenti dettagli per configurare l’host virtuale.

  • Nomi di Dominio: I nomi di dominio dove il tuo web server sarà accessibile. Questo esempio utilizza il dominio testweb.com.
  • Nome host / IP di inoltro: Il nome host o l’indirizzo IP del server web. Poiché questo tutorial utilizza Docker Compose per configurare i contenitori, è sufficiente utilizzare app2. Digita qualsiasi nome che hai fornito in docker-compose.yml.
  • Porta di inoltro: La porta su cui il server web è in ascolto per le richieste. In questo caso, utilizzerai la porta 80, che è la porta esposta predefinita per i contenitori Apache httpd.
  • Blocco delle vulnerabilità comuni: Inoltre, i proxy configurati con NPM possono bloccare le vulnerabilità comuni. Attiva questa opzione.
  • Lista di accesso: Elenchi predefiniti per controllare l’accesso al server web dietro un proxy. Per questo tutorial, lascia la scelta a Accesso Pubblico per assicurarti di poter accedere al server web tramite il proxy.

Il modulo visualizzato sullo schermo dovrebbe corrispondere allo screenshot qui sotto. Fai clic su Salva dopo aver completato il modulo.

Adding the Proxy Host details

Ora hai un host proxy nell’elenco.

List of proxy hosts

5. Infine, vai all’URL dell’host virtuale in una nuova scheda o finestra del browser. Per questo tutorial, l’URL è http://testweb.com. Se l’host virtuale funziona correttamente, dovresti vedere la pagina iniziale predefinita.

Accessing the Webserver via the Proxy

Provisioning dei certificati SSL

Hai distribuito il server web e confermato che è in esecuzione. A questo punto, però, il sito web non dispone ancora di un certificato SSL. Anche se eseguire siti web interni privati senza un certificato SSL potrebbe andare bene, lo stesso non dovrebbe accadere quando si ospitano siti web pubblici.

Per garantire che le connessioni al tuo sito web siano crittografate, installerai un certificato SSL sul tuo host virtuale successivamente. Non preoccuparti; lo farai attraverso NGINX Proxy Manager. Tuttavia, dovresti già avere un certificato SSL nel formato PEM e una chiave di certificato come requisito.

1. Fai clic sulla scheda “Certificati SSL” nel pannello di amministrazione di NGINX Proxy Manager.

Opening the SSL Certificates tab

2. Nell’angolo in alto a destra, fai clic su Aggiungi certificati SSL -> Personalizzato.

Adding a custom SSL certificate

Come alternativa a un certificato personalizzato, puoi richiedere direttamente e al volo un certificato Let’s Encrypt selezionando Let’s Encrypt. Tuttavia, ciò richiede che il tuo sito web e il record DNS siano pubblici. In caso contrario, l’acquisizione del certificato non avverrà.

3. Compila il modulo Aggiungi certificato personalizzato come segue:

  • Nome: Un nome comprensibile per il certificato nel pannello di amministrazione. In questo tutorial viene utilizzato il nome “Testweb Cert”.
Provisioning SSL Certificates: Naming the certificate
  • Chiave del certificato: Questa chiave viene fornita con il file del certificato generato come requisito in questo tutorial.

Fai clic su “Sfoglia” e naviga fino al file della chiave.

Provisioning SSL Certificates: Selecting the key file

Fai doppio clic sul file della chiave. In questo tutorial, la chiave del certificato si chiama “mytesthttpd.key”.

Provisioning SSL Certificates: Selecting the key file
  • Certificato: Il file del certificato stesso, in formato .crt o .pem.

Fai clic su “Sfoglia” e naviga fino al tuo certificato nel tuo esploratore di file.

Provisioning SSL Certificates: Selecting the certificate file

Fai doppio clic sul file del certificato per aprirlo. In questo tutorial, il file della chiave si chiama “mytesthttpd.pem”.

Provisioning SSL Certificates: Selecting the certificate file

4. Una volta compilati tutti e tre i campi, il modulo dovrebbe apparire come nella schermata sottostante. Fare clic su Salva per inviare il certificato personalizzato.

In questo tutorial non viene utilizzato un certificato intermedio. Ignora questo campo per ora.

Saving the SSL certificate

5. Ora, fare clic su Hosts -> Proxy Hosts.

Provisioning SSL Certificates: Applying the certificate to a Proxy Host

6. Fare clic sull’icona del menu a tre punti e su Modifica. Si noti che nella colonna SSL viene visualizzato solo HTTP in questo momento

Editing a proxy Host

7. Selezionare la scheda SSL nella finestra Modifica Proxy Host come indicato di seguito. Selezionare il certificato che si è fornito dal menu a discesa sotto Certificato SSL. Per questo tutorial, è Testweb Cert come mostrato nella schermata sottostante.

Selecting a certificate for a Proxy Host

8. Selezionare il certificato che si è aggiunto in precedenza dal menu a discesa sotto Certificato SSL. Come si può vedere di seguito, il nome del certificato da selezionare è Testweb Cert.

Selecting a certificate for a Proxy Host

9. Abilitare tutte le opzioni SSL avanzate disponibili, come mostrato nella schermata sottostante, e fare clic su Salva.

L’opzione Force SSL forzerà o aggiornerà tutte le connessioni a HTTPS anche quando il client ha inizialmente tentato di accedere solo all’URL HTTP.

Enabling enhanced SSL features

A word of warning with HSTS. As browsers will include the site on an internal inclusion list, your site will no longer work under non-SSL conditions. Therefore, make sure that you have everything set up the correct way first.

Si noterà che il valore della colonna SSL è cambiato da Solo HTTP a Personalizzato.

Confirming changes in the SSL setting for a Proxy Host

10. Infine, aprire una scheda del browser e navigare nuovamente nel dominio dell’host virtuale. Per questo tutorial, si tratta di http://testweb.com. La connessione dovrebbe essere automaticamente aggiornata a HTTPS.

Testing HTTPS access with a browser

Congratulazioni! Hai completato la distribuzione di un host virtuale protetto utilizzando NGINX Proxy Manager.

Aggiunta degli utenti di NGINX Proxy Manager

Se lavori con un team o ti aspetti che qualcun altro gestisca gli host virtuali in NPM, dovrai fornire l’accesso all’utente. In questa sezione, estenderai la gestione di NPM, specialmente nelle impostazioni di team, creando un utente e assegnando ruoli e permessi.

1. Clicca su Utenti nella home page del pannello di amministrazione.

Extending NPM with Users: Opening the Users tab

2. Clicca su Aggiungi Utente nell’angolo in alto a destra della scheda Utenti.

Adding a user

3. Digita il nome completo dell’utente (Utente di Prova), il soprannome (testuser), e l’indirizzo email ([email protected]) nei campi corrispondenti e clicca Salva.

Questo utente che stai creando non sarà un amministratore completo, quindi non abilitare il ruolo di Amministratore. Assegnerai invece un permesso personalizzato. Clicca Salva per aggiungere il nuovo utente.

Adding user particulars

4. Imposta i permessi che desideri dare all’utente. Per questo tutorial, il nuovo utente avrà le seguenti impostazioni di permesso.

  • Può visualizzare solo gli elementi creati dall’utente.
  • Può creare, modificare ed eliminare Host Proxy.
  • Può creare, modificare ed eliminare Host di Reindirizzamento.
  • Non può vedere Host 404.
  • Non può vedere Flussi.
  • Può visualizzare Liste di Accesso.
  • Può creare, modificare ed eliminare Certificati SSL.

Il set di permessi dovrebbe essere simile alla schermata sottostante. Clicca Salva per completare l’aggiunta del nuovo utente.

Saving the user’s permissions

5. Ora, clicca sul menu a tre punti del nuovo utente e clicca Accedi come Utente. Questo passaggio cambierà il contesto dell’utente attuale in Utente di Prova.

Signing in as the new user

Esplora il pannello di amministrazione dal punto di vista del nuovo utente. In base ai permessi di questo utente, dovresti vedere meno schede e risorse.

Confirming access permissions

Conclusioni

Congratulazioni per aver completato questo tutorial su NGINX Proxy Manager. Hai imparato a gestire gli host virtuali e ad abilitare la collaborazione creando utenti dall’interfaccia grafica! Pensate che tornerete mai a gestire gli host virtuali NGINX attraverso la modifica dei file di configurazione manualmente?

Ecco un’idea per testare ulteriormente il tuo apprendimento. Perché non leggere Come servire sottodomini o domini multipli con NGINX. Ma invece di seguire le configurazioni manuali, applica ciò che hai imparato e distribuisci e configura gli host virtuali utilizzando NGINX Proxy Manager.

Source:
https://adamtheautomator.com/nginx-proxy-manager/