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 spiega come impostare i blocchi del server Nginx su Debian 10.
Prerequisiti #
Assicurati di aver soddisfatto i seguenti prerequisiti:
- Nome di dominio che punta all'IP del tuo server pubblico.
- Nginx installato sul tuo sistema Debian.
- Sei loggato come root o utente con privilegi sudo.
In alcuni documenti, il termine Server Blocks
è indicato come Virtual host
.Un host virtuale è un termine Apache.
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. La radice del documento può essere qualsiasi directory sul server.
Gli esempi in questo articolo utilizzano la seguente struttura di directory:
/var/www/
├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
├── domain3.com
│ └── public_html
Fondamentalmente, creeremo una directory separata per ogni dominio che vogliamo ospitare sul nostro server all'interno del /var/www
directory. All'interno di ciascuna di queste directory, creeremo un public_html
directory che memorizzerà i file del sito Web del dominio.
Esegui il comando seguente per creare la directory principale per il dominio example.com
:
sudo mkdir -p /var/www/example.com/public_html
Quindi, crea un index.html
file all'interno della directory principale del documento del dominio:
sudo nano /var/www/example.com/public_html/index.html
Apri il file e incolla le seguenti righe:
/var/www/example.com/public_html/index.html<!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>
Per evitare problemi di autorizzazione, cambia la proprietà della directory principale del documento di dominio nell'utente Nginx (www-data
):
sudo chown -R www-data: /var/www/example.com
Crea un blocco server #
Per impostazione predefinita, sui sistemi Debian, i file di configurazione dei blocchi del server Nginx sono archiviati in /etc/nginx/sites-available
directory. Per attivare una configurazione è necessario collegare simbolicamente il file al /etc/nginx/sites-enabled/
directory.
Apri il tuo editor di testo e crea il seguente file di blocco del server:
sudo nano /etc/nginx/sites-available/example.com.conf
/etc/nginx/sites-available/example.com.confserver {
listen 80;
listen [::]:80;
root /var/www/example.com/public_html;
index index.html;
server_name example.com www.example.com;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
location / {
try_files $uri $uri/ =404;
}
}
Il file di configurazione può essere nominato come vuoi, ma di solito è meglio usare il nome di dominio.
Abilita il nuovo file di blocco del server creando un collegamento simbolico dal file a sites-enabled
directory:
sudo ln -s /etc/nginx/sites-available/example.com.conf /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
Per verificare che il blocco del server funzioni come previsto, apri http://example.com
nel tuo browser e vedrai qualcosa di simile a questo: