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:

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 [email protected]_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 [email protected]_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 [email protected]_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 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.