Introduzione
Un blocco server è una direttiva Nginx che definisce le impostazioni per un dominio specifico, che consente di eseguire più di un sito Web su un singolo server. Per ogni sito Web, è possibile impostare la root 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 impostare i blocchi server Nginx su CentOS 8.
Prerequisiti
Assicurati di aver soddisfatto i seguenti requisiti prima di continuare con questo tutorial:
- Nome di dominio che punta all'IP del tuo server pubblico.
- Nginx installato sul tuo sistema CentOS .
- Hai effettuato l'accesso come root o utente con privilegi sudo.
In alcuni documenti, il termine Server Blocks
è indicato come a Virtual host
. Un host virtuale è un termine di Apache.
Se desideri installare Nginx Server Blocks su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.
Connessione al Server
Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:
ssh root@IP_DEL_SERVER
Successivamente sarà necessario inserire la password dell'utente root.
Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:
ssh nome_utente@IP_DEL_SERVER
Successivamente vi verrà chiesto di inserire la password del vostro utente.
La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Creare la struttura delle directory
La root del documento è la directory in cui i file del sito Web per un nome di dominio vengono archiviati e offerti in risposta alle richieste. La root del documento può essere impostata in qualsiasi posizione desiderata.
Useremo la seguente struttura di directory:
/var/www/
├── example.com
│ └── public_html
├── example2.com
│ └── public_html
├── example3.com
│ └── public_html
Per ogni dominio che sarà ospitato sul server, creeremo una directory separata all'interno /var/www
. All'interno della directory del dominio, creeremo una directory public_html
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 dominio example.com
:
sudo mkdir -p /var/www/example.com/public_html
In questo tutorial utilizziamo nano, se preferisci puoi utilizzare vi installato di default sulla maggior parte delle distribuzioni.
sudo dnf install nano
A scopo di test, creare un file index.html
nella directory principale dei documenti del dominio:
sudo mkdir -p /var/www/example.com/public_html
sudo nano /var/www/example.com/public_html/index.html
Copia e incolla il seguente codice nel file:
<!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, modificare la proprietà della directory principale del documento di dominio per l'utente nginx
:
sudo chown -R nginx: /var/www/example.com
Creare un blocco server
Per impostazione predefinita su CentOS, i file di configurazione del blocco server Nginx devono terminare con .conf
e sono archiviati nella directory /etc/nginx/conf.d
.
Apri il tuo editor di testo e crea il file di configurazione per il dominio:
sudo nano /etc/nginx/conf.d/example.com.conf
Il file di configurazione può essere nominato come vuoi, ma di solito è meglio usare il nome di dominio.
Copia e incolla il seguente codice nel file:
server {
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;
}
}
Salvare il file e verificare la configurazione di Nginx per errori di sintassi:
sudo nginx -t
Se non ci sono errori, l'output sarà simile al seguente:
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 se il blocco server funziona come previsto, apri il browser e naviga verso il tuo indirizzo http://example.com
. Dovresti visualizzare la pagina html creata in precedenza.
Conclusione
Ti abbiamo mostrato come creare blocchi server Nginx e ospitare più domini su un singolo server CentOS. Puoi ripetere i passaggi descritti sopra e creare blocchi server aggiuntivi per tutti i tuoi domini.
Se si desidera proteggere il proprio sito Web con un certificato SSL, è possibile generare e installare un certificato SSL Letsencrypt gratuito.