
In Nginx, blocchi server vengono utilizzati per definire informazioni di dominio specifiche. Aiuta a ospitare più domini o siti web. Ogni blocco contiene informazioni di dominio specifiche come root del documento, SSL, porta e altro. I blocchi del server Nginx sono simili agli host virtuali Apache.
In questo tutorial impariamo come configurare i blocchi del server Nginx su Ubuntu 18.04/20.04 .
Prerequisiti
Richiede un'istanza Ubuntu 18.04/20.04. L'istanza dovrebbe avere Nginx installato. Richiedi un utente con accesso sudo.
Passaggio 1. Crea la struttura della directory
La radice del documento è la directory in cui i file del sito Web per un nome di dominio sono archiviati e serviti in risposta alle richieste. Possiamo impostare la radice del documento in qualsiasi posizione desideriamo, ma in questo articolo utilizzeremo la seguente struttura di directory:
/var/www/
├── domain1.com
│ └── images
│ └── index.html
│ └── style.css
├── domain2.net
│ └── images
│ └── index.html
│ └── style.css
Fondamentalmente, creeremo una directory separata per ogni dominio che vogliamo ospitare sul nostro server all'interno del /var/www
directory.
Creiamo la directory principale per i nostri domini:
$ sudo mkdir -p /var/www/domain1.com
A scopo di test, creeremo una directory index.html, style.css e images all'interno della directory principale dei documenti del dominio.
$ cd /var/www/domain1.com/
/var/www/domain1.com$ sudo mkdir images index.html style.css
Apri il nostro editor e crea il file demo:
/var/www/domain1.com/index.html<!DOCTYPE html> <html lang="en" dir="ltr">
<head> <meta charset="utf-8">
<title>Welcome to domain1.com</title> <link rel="stylesheet" href="style.css"/>
</head>
<body> <h1 style="color:green;text-align:center;">Success! domain1.com home page!</h1>
</body>
</html>
Qui stiamo eseguendo i comandi come sudo
user e i file e le directory appena creati sono di proprietà della root
utente.
Per evitare problemi di autorizzazione, possiamo modificare la proprietà della directory principale del documento di dominio nell'utente Nginx (www-data)
:
$ sudo chown -R www-data: /var/www/domain1.com
faremo le stesse procedure per domain2.net
Passaggio 2. Crea file di blocco del server Nginx per ogni dominio
Ora che abbiamo il contenuto che desideriamo servire, dobbiamo creare effettivamente i blocchi del server che diranno a Nginx come farlo.
Per impostazione predefinita, Nginx contiene un blocco server chiamato dfault
che possiamo usare come modello per le nostre configurazioni. Inizieremo progettando il blocco server del nostro primo dominio, che copieremo quindi per il nostro secondo dominio e apporteremo le modifiche necessarie.
1) Crea il primo file di blocco del server Nginx
Come accennato in precedenza, creeremo il nostro primo file di configurazione del blocco del server copiando il file predefinito:
$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/domain1.com
Ora apri il nuovo file che hai creato nel tuo editor di testo con i privilegi sudo:
$ sudo nano /etc/nginx/sites-available/domain1.com
Dopo aver modificato il file, apparirà simile a questo:
/etc/nginx/sites-available/domain1.comserver { listen 80; listen [::]:80; root /var/www/domain1.com; index index.html index.htm index.nginx-debian.html; server_name domain1.com www.domain1.com;
location /
{ try_files $uri $uri/ =404; } }
Questo è tutto ciò di cui abbiamo bisogno per una configurazione di base. Salva e chiudi il file per uscire da Ctrl
+ x
.
2) Crea il secondo file di blocco del server Nginx
Ora che abbiamo la nostra prima configurazione del blocco del server Nginx, possiamo usarla come base per il nostro secondo file. Copialo per creare un nuovo file:
$ sudo cp /etc/nginx/sites-available/domain1.com /etc/nginx/sites-available/domain2.net
Apri il nuovo file con sudo
privilegi nel tuo editor:
$ sudo nano /etc/nginx/sites-available/domain2.net
Regola la direttiva root in modo che punti al documento del nostro secondo dominio root
e regola il server_name
in modo che corrisponda al nome di dominio del tuo secondo sito (assicurati di includere eventuali alias).
Al termine, il nostro file sarà probabilmente simile a questo:
/etc/nginx/sites-available/domain2.netserver { listen 80; listen [::]:80; root /var/www/domain2.net; index index.html index.htm index.nginx-debian.html; server_name domain2.net www.domain2.net;
location /
{ try_files $uri $uri/ =404; } }
Salva e chiudi il file per uscire da Ctrl
+ x
.
Passaggio 3. Abilita i nostri blocchi server Nginx e riavvia Nginx
Ora che abbiamo i nostri file di blocco del server, dobbiamo abilitarli. Possiamo farlo creando collegamenti simbolici da questi file a sites-enabled
directory, da cui Nginx legge durante l'avvio.
Possiamo creare questi collegamenti digitando:
$ sudo ln -s /etc/nginx/sites-available/domain1.com /etc/nginx/sites-enabled/
$ sudo ln -s /etc/nginx/sites-available/domain2.net /etc/nginx/sites-enabled/
Questi file sono ora nella directory abilitata, ora abbiamo tre blocchi server abilitati:
1. domain1.com:risponderà alle richieste di domain1.com e www.domain1.com
2. domain2.net:risponderà alle richieste di domain2.net e www.domain2.net
3. default:risponderà a tutte le richieste sulla porta 80 che non corrispondono agli altri due blocchi.
Per evitare un possibile problema di memoria del bucket di hash che può derivare dall'aggiunta di nomi di server aggiuntivi, andremo avanti e regoleremo un singolo valore all'interno del nostro file /etc/nginx/nginx.conf. Apri il file ora:
$ sudo nano /etc/nginx/nginx.conf
All'interno del file, trova il server_names_hash_bucket_size
direttiva. Rimuovi il #
simbolo per decommentare la riga:
http { . . . server_names_hash_bucket_size 64; . . . }
Salva e chiudi il file quando hai finito.
Quindi, verifica che non ci siano errori di sintassi in nessuno dei nostri file Nginx:
$ sudo nginx -t
Se non sono stati rilevati problemi, riavvia Nginx per abilitare le nostre modifiche:
$ sudo systemctl restart nginx
Nginx ora dovrebbe servire entrambi i nostri nomi di dominio.
Fase 4. Verifica accedendo al sito web
Ora che siamo tutti impostati, dovremmo verificare che i nostri blocchi server funzionino correttamente. Possiamo farlo visitando i domini nel nostro browser web:
http://domain1.com

Dovresti vedere una pagina simile a questa:
Se visiti il tuo secondo nome di dominio, dovresti vedere un sito leggermente diverso:
http://domain2.net

Conclusione
In questo tutorial, abbiamo imparato come configurare il blocco del server Nginx su Ubuntu 18.04/20.04. Utilizzando i blocchi del server Nginx abbiamo impostato due domini per servire le richieste web.