Introduzione
Nginx pronunciato "motore x" è un server HTTP e proxy inverso open source ad alte prestazioni responsabile della gestione del carico di alcuni dei più grandi siti su Internet. Può essere utilizzato come server Web autonomo, bilanciatore del carico, cache dei contenuti e proxy inverso per server HTTP e non HTTP.
Un blocco server è una direttiva Nginx che definisce le impostazioni per un dominio specifico, consentendoti di eseguire più di un sito Web su un singolo server. Per ogni sito web, puoi impostare la root del documento del sito (la directory che contiene i file del sito web), creare una politica di sicurezza separata, utilizzare diversi certificati SSL e molto altro.
Questo articolo descrive come configurare i blocchi server Nginx su Ubuntu 22.04. Imparerai come configurare più siti Web su un singolo server e personalizzare le impostazioni di ciascun sito in base alle tue esigenze.
Prerequisiti
Assicurati di aver soddisfatto i seguenti requisiti prima di continuare:
- Il nome di dominio punta all'IP del tuo server pubblico.
- Nginx è installato sul tuo sistema Ubuntu.
- Hai effettuato l'accesso come root o utente con privilegi sudo.
Vale la pena notare che in alcuni articoli relativi ai server web, il termine “Blocchi server” viene indicato come “host virtuale”. Un host virtuale è un termine Apache.
Creazione della struttura di directory
La radice del documento è la directory in cui i file del sito web per un nome di dominio vengono archiviati e serviti in risposta alle richieste. Puoi impostare la radice del documento in qualsiasi posizione desideri. In questo esempio utilizzeremo la seguente struttura di directory:
/var/www/
├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
Ogni dominio ospitato sul server avrà la radice del documento impostata su /var/www/<domain_name>/public_html
.
Inizia creando la directory root per il dominio:
sudo mkdir -p /var/www/domain1.com/public_html
Successivamente, crea un file index.html
e inseriscilo nella directory principale del dominio. Questo file verrà visualizzato come pagina predefinita quando accedi all'URL del dominio nel tuo browser web.
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to domain1.com</title>
</head>
<body>
<h1>Success! domain1.com home page!</h1>
</body>
</html>
Quando si eseguono i comandi come utente sudo, i file e le directory appena creati saranno di proprietà dell'utente root. Per evitare problemi di autorizzazione, modifica la proprietà della directory root dei documenti del dominio e di tutti i file all'interno della directory con l'utente Nginx (www-data
):
sudo chown -R www-data: /var/www/domain1.com
Creazione di un blocco server
Sui sistemi Ubuntu, i file di configurazione per i blocchi server Nginx sono archiviati nella directory /etc/nginx/sites-available
. Possono essere abilitati creando collegamenti simbolici alla directory /etc/nginx/sites-enabled
, che Nginx legge durante l'avvio.
Apri il tuo editor di testo e crea il seguente file di blocco del server:
server {
listen 80;
server_name domain1.com www.domain1.com;
root /var/www/domain1.com/public_html;
index index.html;
access_log /var/log/nginx/domain1.com.access.log;
error_log /var/log/nginx/domain1.com.error.log;
}
server_name
: i domini che corrisponderanno a questa configurazione di blocco del server.root
: la directory da cui Nginx servirà i file del dominio.access_log
,error_log
: specifica il percorso dei file di registro.
Il file di configurazione può avere il nome che preferisci, ma in genere è meglio utilizzare il nome di dominio.
Per abilitare il nuovo file di blocco del server, crea un collegamento simbolico dal file alla directory sites-enabled
, che Nginx legge durante l'avvio:
sudo ln -s /etc/nginx/sites-available/domain1.com /etc/nginx/sites-enabled/
Per assicurarti che la sintassi della configurazione di Nginx sia corretta, esegui un test:
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 affinché le modifiche abbiano effetto:
sudo systemctl restart nginx
Infine, per verificare che il blocco del server funzioni come previsto, apri il browser http://domain1.com
che preferisci e vedrai qualcosa di simile a questo:
Conclusione
Ti abbiamo mostrato come creare blocchi server Nginx e ospitare più domini su un singolo server Ubuntu. Puoi ripetere i passaggi sopra descritti e creare blocchi server aggiuntivi per tutti i tuoi domini.
Se riscontri problemi, sentiti libero di lasciare un commento.