Nginx Server Blocks ti consente di eseguire più di un sito Web su una singola macchina. Con Server Blocks, puoi specificare la radice del documento del sito (la directory che contiene i file del sito Web), creare una politica di sicurezza separata per ogni sito, utilizzare certificati SSL diversi per ogni sito e molto altro.
In questo articolo, forniremo istruzioni dettagliate su come configurare i blocchi del server Nginx (simili ad Apache Virtual Hosts) su Ubuntu 18.04.
Prerequisiti #
Assicurati di aver soddisfatto i seguenti prerequisiti prima di continuare con il tutorial:
- Hai un nome di dominio che punta all'IP del tuo server pubblico. Useremo
example.com
. - Hai installato Nginx seguendo queste istruzioni.
- Sei loggato come utente con privilegi sudo.
Server Blocks
denominato 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. Puoi impostare la radice del documento in qualsiasi posizione desideri.
Utilizzeremo 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.
Creiamo la directory principale per il nostro dominio example.com
:
sudo mkdir -p /var/www/example.com/public_html
A scopo di test, creeremo un index.html
file all'interno della directory principale del documento del dominio.
Apri il tuo editor e crea il file demo:
/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>
In questo esempio, stiamo eseguendo i comandi come utente sudo e i file e le directory appena creati sono di proprietà dell'utente root.
Per evitare problemi di autorizzazione, cambia la proprietà della directory principale del documento di dominio all'utente Nginx (www-data
):
sudo chown -R www-data: /var/www/example.com
Crea un blocco server #
Per impostazione predefinita sui sistemi Ubuntu, i file di configurazione dei blocchi del server Nginx sono archiviati in /etc/nginx/sites-available
directory, che sono abilitate tramite collegamenti simbolici al /etc/nginx/sites-enabled/
directory.
Apri il tuo editor preferito e crea il seguente file di blocco del server:
/etc/nginx/sites-available/example.comserver {
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;
}
}
Puoi nominare il file di configurazione come preferisci, 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 viene letta da Nginx 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: