Hai un server con un singolo indirizzo IP pubblico, ma hai bisogno di ospitare più domini o sottodomini? Cosa faresti? Questo scenario può essere confuso se sei un principiante. Ma non preoccuparti, questo tutorial ti copre, in modo da poter servire un sottodominio NGINX e più domini.
In questo tutorial, imparerai come servire efficacemente sottodomini NGINX o più domini su un unico server con un singolo indirizzo IP!
Se sei pronto, è tempo di metterci mano!
Prerequisiti
Questo tutorial prevede esempi pratici ma non richiede molti prerequisiti e suppone che tu abbia un Ubuntu Server LTS con SSH abilitato e NGINX installato. Gli esempi in questo tutorial sono basati su Ubuntu Server LTS 20.04.1.
Configurazione dei record DNS
Prima di poter servire sottodomini NGINX o più domini, dovrai aggiungere un record A in un pannello di controllo DNS. Il record A collega e punta tutti i domini e sottodomini a un singolo indirizzo IP per consentire ai browser web di trovare il tuo sito web.
1. Avvia il tuo browser web preferito e accedi al pannello di controllo DNS.
2. Fai clic su Aggiungi record per iniziare ad aggiungere i record A. Il tuo browser ti reindirizza a una pagina in cui configurerai le impostazioni DNS per il tuo dominio e i sottodomini.

Ora configura le impostazioni DNS come segue:
Seleziona Record A nel campo Tipo.
Inserisci @ nel campo Host e l’indirizzo IP del tuo server nel campo Valore.
Seleziona il valore desiderato nel campo TTL, quindi fai clic sul pulsante Conferma per salvare le impostazioni.
Ripeti lo stesso processo per gli altri sottodomini.

La pagina finale Impostazioni DNS sarà simile a quella riportata di seguito.

Il pannello di controllo dei record DNS potrebbe variare per funzionalità e design, ma gli stessi principi si applicano a tutti.
Configurazione delle directory web per il dominio NGINX e i sottodomini
Ora che hai aggiunto i record A per il tuo dominio e i sottodomini, è il momento di configurare le loro directory web. NGINX viene fornito con un file di virtual host predefinito ed è configurato per servire una directory web situata in /usr/share/nginx/html.
Creerai una directory web separata per ogni dominio all’interno della directory radice dei documenti predefinita di NGINX (/var/www/html).
1. Prima, apri il tuo terminale e esegui i comandi qui sotto per creare directory web per tutti i domini e sottodomini. In questo modo si separano, si organizzano e si isolano i file per ogni sito web.
2. Successivamente, esegui il comando chown
per cambiare ricorsivamente (-R
) la proprietà di ogni directory creata nel passaggio uno all’utente e al gruppo www-data
. Stai cambiando la proprietà di ogni directory all’utente e al gruppo www-data
poiché NGINX funziona come utente www-data
.
3. Crea un file chiamato index.html nel tuo editor di codice preferito e quindi copia/incolla il codice qui sotto nel file index.html. Salva il file all’interno della directory web primaria dei tuoi domini (/var/www/html/awstutorial.net).
Il codice HTML qui sotto mostra un messaggio che dice “Congratulazioni! Il sito web awstutorial.net funziona!” quando il file index.html viene aperto in un browser web.
4. Infine, crea lo stesso index.html nelle directory /var/www/html/web1.awstutorial.net e /var/www/html/web2.awstutorial.net. Ma sostituisci awstutorial.net
con web1.awstutorial.net
e web2.awstutorial.net
nel codice di ciascun index.html di conseguenza.
Configurazione dell’host virtuale per il dominio NGINX e i sottodomini
Hai già una pagina index.html per il tuo dominio e i sottodomini da servire attraverso un server web NGINX. Il prossimo passo è creare un file di configurazione dell’host virtuale NGINX per ogni dominio per servire le pagine HTML.
1. Crea un file di configurazione del server virtuale NGINX chiamato awstutorial.net nel tuo editor di codice preferito, e poi copia/incolla il codice sottostante in quel file. Salva il file nella directory /etc/nginx/sites-available/.
Il codice sottostante controlla il comportamento del tuo server, come il nome del server e la pagina index (home) quando un utente cerca di accedere al tuo dominio.
2. Successivamente, esegui il seguente comando nginx
per controllare (-t
) il file di configurazione NGINX per eventuali errori di sintassi.
Se non viene trovato alcun errore di sintassi nel file di configurazione NGINX, otterrai il seguente output.

3. Successivamente, esegui il comando seguente per creare un link simbolico (ln -s
) dalla directory /etc/nginx/sites-available alla directory /etc/nginx/sites-enabled/. Questo comando abiliterà il file di configurazione dell’host virtuale awstutorial.net.
Il formato sites-available e sites-enabled è standard in un’installazione di NGINX su Ubuntu, ma altre distribuzioni potrebbero utilizzare uno standard diverso.
4. Ripeti i passaggi da uno a tre per creare i file di configurazione dell’host virtuale NGINX chiamati web1.awstutorial.net e web2.awstutorial.net.
Modifica le seguenti righe in ciascun file di configurazione dell’host virtuale NGINX:
- Sostituisci la riga
root /var/www/html/awstutorial.net
con la directory webroot di ciascun sottodominio (root /var/www/html/web1.awstutorial.net
eroot /var/www/html/web2.awstutorial.net
). - Sostituisci la riga
server_name awstutorial.net
con il nome di ciascun sottodominio (server_name web1.awstutorial.net
eserver_name web2.awstutorial.net
).
5. Ora esegui i comandi sudo ln
di seguito come hai fatto al passaggio tre per abilitare i file di configurazione dell’host virtuale.
6. Esegui il comando systemctl
riavviare il servizio NGINX (restart nginx
) per applicare tutte le modifiche alla configurazione.
7. Infine, naviga agli URL del dominio e dei sottodomini sul tuo browser per verificare se i siti web funzionano correttamente.
Se il dominio e i sottodomini si caricano correttamente, vedrai un messaggio simile a quello riportato di seguito.

Configurazione di HTTPS su dominio e sottodomini NGINX
Hai configurato e testato con successo un dominio NGINX e sottodomini sul protocollo HTTP, il che è ottimo. Ma devi proteggere la connessione del tuo dominio e sottodomini abilitando HTTPS. Come? Con un certificato che otterrai da un’Authority di Certificazione come Let’s Encrypt SSL.
1. In primo luogo, esegui il comando sottostante per installare il pacchetto software Certbot (apt-get install certbot
). Certbot ti consente di scaricare un certificato SSL per il tuo dominio e sottodomini.
2. Successivamente, esegui il comando certbot
di seguito per scaricare un certificato SSL (certonly
) per il tuo dominio (-d awstutorial.net
). Nota che accetti i termini di servizio (—agree-tos
) inserendo il tuo indirizzo email (—email
).
Sostituisci l’email con la tua.
3. Inserisci ‘1’ per selezionare il plugin NGINX Web Server (nginx) per autenticarti con il CA ACME, come mostrato di seguito.

Dopo aver selezionato il plugin NGINX Web Server, vedrai il progresso del download del certificato SSL per il tuo dominio (awstutorial.net).
Per impostazione predefinita, i certificati SSL di Let’s Encrypt sono memorizzati nella directory /etc/letsencrypt/live/.

4. Ora esegui ciascun comando di seguito come hai fatto al passo due per scaricare i certificati SSL per i sottodomini rimanenti (web1.awstutorial.net
e web2.awstutorial.net
).
5. Infine, esegui il comando ls
di seguito per elencare tutti i certificati SSL nella directory /etc/letsencrypt/live/ che contengono (*
) il awstutorial.net
nei loro nomi. Ciò ti consente di verificare l’esistenza dei certificati SSL.
Di seguito, vedrai i certificati SSL per il tuo dominio e i sottodomini.

Configurazione dell’host virtuale NGINX per utilizzare i certificati SSL
A questo punto, hai già a disposizione i certificati SSL. Ma come li utilizzi per proteggere il tuo dominio e i sottodomini? Definirai il percorso dei certificati nel blocco server
di ciascun file di configurazione host virtuale NGINX.
1. Apri il file di configurazione dell’host virtuale NGINX di awstutorial.net situato nella directory /etc/nginx/sites-available/
nel tuo editor di codice preferito.
2. Sostituisci il contenuto del file con il codice sottostante, dove definisci il percorso del certificato SSL del tuo dominio e il protocollo SSL (sotto Percorso del certificato SSL
).
3. Ripeti lo stesso processo (passaggi uno a due) per i restanti file di configurazione dell’host virtuale (web1.awstutorial.net e web2.awstutorial.net). Ma assicurati di sostituire il percorso del certificato SSL con il percorso del certificato del tuo sottodominio (sotto Percorso del certificato SSL
).
4. Ora esegui nuovamente il comando systemctl
di seguito per riavviare il servizio NGINX e applicare le modifiche alla configurazione.
5. Infine, naviga sui tuoi URL di dominio e sottodominio sul tuo browser web. Ma questa volta, anziché utilizzare il protocollo HTTP, utilizza HTTPS per vedere se funzionano.
In basso, puoi vedere un’icona del lucchetto nella barra degli indirizzi, che indica che il sito web è sicuro con il tuo certificato SSL.

Conclusioni
In questo tutorial, hai imparato come servire un sottodominio NGINX o più domini configurando un file di configurazione dell’host virtuale. Hai anche toccato il tema della sicurezza dei tuoi domini con un certificato SSL che hai anche definito nel file di configurazione dell’host virtuale.
Ora, perché non utilizzare questa configurazione in un ambiente di produzione, ad esempio per ospitare più app su un singolo server e fornire hosting web conveniente?