Un blocco server è una direttiva Nginx che definisce le impostazioni per un dominio specifico, consentendo di eseguire più di un sito Web su un singolo server. Per ogni sito Web, puoi impostare la radice del documento del sito (la directory che contiene i file del sito Web), creare una politica di sicurezza separata, utilizzare certificati SSL diversi e molto altro.
Questo articolo descrive come configurare i blocchi del server Nginx su Ubuntu 20.04.
Prerequisiti #
Assicurati di aver soddisfatto i seguenti requisiti prima di continuare:
- Nome di dominio che punta all'IP del tuo server pubblico.
- Nginx installato sul tuo sistema Ubuntu.
- Sei loggato come root o utente con privilegi sudo.
In alcuni articoli, il termine "Blocchi server" viene indicato come "host virtuale". Un host virtuale è un termine Apache.
Creazione della 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. Puoi impostare la radice del documento in qualsiasi posizione desideri. In questo esempio, utilizzeremo la seguente struttura di directory:
/var/www/
├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
Ogni dominio ospitato sul server avrà la radice del documento impostata su /var/www/<domain_name>/public_html
.
Inizia creando la directory principale per il dominio:
sudo mkdir -p /var/www/domain1.com/public_html
Creeremo anche un index.html
file all'interno della directory principale del documento di dominio che verrà mostrato quando visiti il dominio nel tuo browser:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to example.com</title>
</head>
<body>
<h1>Success! example.com home page!</h1>
</body>
</html>
Poiché i comandi precedenti vengono eseguiti come utente sudo, i file e le directory appena creati sono di proprietà di root. Per evitare problemi di autorizzazione, cambia la proprietà della directory principale del documento di dominio e tutti i file all'interno della directory all'utente Nginx (www-data
) :
sudo chown -R www-data: /var/www/domain1.com
Creazione di un blocco server #
Sui sistemi Ubuntu, i file di configurazione del blocco del server Nginx si trovano in /etc/nginx/sites-available
directory. Possono essere abilitati creando collegamenti simbolici a /etc/nginx/sites-enabled
directory, che Nginx ha letto durante l'avvio.
Apri il tuo editor di testo e crea il seguente file di blocco del server:
/etc/nginx/sites-available/example.comserver {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/public_html;
index index.html;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
}
server_name
:i domini che dovrebbero corrispondere a questa configurazione del blocco server.root
:la directory da cui Nginx servirà i file di dominio.access_log
,error_log
:specifica la posizione per i file di registro.
Il file di configurazione può essere nominato come vuoi, ma di solito è meglio usare il nome di dominio.
Per abilitare il nuovo file di blocco del server, crea un collegamento simbolico dal file a sites-enabled
directory, che Nginx ha letto durante l'avvio:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Testare la configurazione di Nginx per la sintassi corretta:
sudo nginx -t
Se non ci sono errori, l'output sarà simile a questo:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Riavvia il servizio Nginx per rendere effettive le modifiche:
sudo systemctl restart nginx
Infine, per verificare che il blocco del server funzioni come previsto, apri http://example.com
nel tuo browser preferito e vedrai qualcosa di simile a questo: