Nginx Server Blocks ti consente di eseguire più di un sito Web su una singola macchina. Questo è utile perché per ogni sito puoi specificare la radice del documento del sito (la directory che contiene i file del sito web), creare una policy di sicurezza separata, utilizzare diversi certificati SSL e molto altro.
In questo tutorial, spiegheremo come configurare i blocchi del server Nginx su CentOS 7.
Prerequisiti #
Assicurati di aver soddisfatto i seguenti prerequisiti prima di continuare con questo tutorial:
- Nome di dominio che punta all'IP del tuo server pubblico. Useremo
example.com
. - Nginx installato sul tuo sistema CentOS.
- Accesso come root o 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. Possiamo impostare la radice del documento in qualsiasi posizione desideri.
Utilizzeremo la seguente struttura di directory:
/var/www/
├── example.com
│ └── public_html
├── example2.com
│ └── public_html
├── example3.com
│ └── public_html
Fondamentalmente stiamo creando una directory separata per ogni dominio che vogliamo ospitare sul nostro server all'interno di /var/www
directory. All'interno di questa directory, creeremo un public_html
directory che sarà la directory principale del documento di dominio e memorizzerà i file del sito Web del dominio.
Iniziamo creando 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 di testo e crea la demo index.html
file:
sudo nano /var/www/example.com/public_html/index.html
Copia e incolla il seguente codice nel file:
/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 nell'utente Nginx (nginx
):
sudo chown -R nginx: /var/www/example.com
Crea un blocco server #
I file di configurazione del blocco del server Nginx devono terminare con .conf
e sono memorizzati in /etc/nginx/conf.d
directory.
Apri il tuo editor preferito e crea un file di configurazione del blocco server per example.com
.
sudo nano /etc/nginx/conf.d/example.com.conf
Puoi nominare il file di configurazione come vuoi. Di solito è meglio usare il nome di dominio. Copia e incolla il seguente codice nel file:
/etc/nginx/conf.d/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;
}
}
Salva il file e verifica la sintassi corretta della configurazione di Nginx:
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: