Introduzione
Su Ubuntu, il server web Nginx memorizza i suoi documenti in /var/www/html, che di solito si trova nel filesystem principale insieme al resto del sistema operativo. A volte, però, è utile spostare la radice del documento in un’altra posizione, come un filesystem montato separatamente. Ad esempio, se si servono più siti web dalla stessa istanza di Nginx, mettendo la radice del documento di ogni sito su un proprio volume consente di scalare in risposta alle esigenze di un sito o di un cliente specifico.
In questa guida, sposterai una radice del documento di Nginx in una nuova posizione.
Prerequisiti
Per completare questa guida, avrai bisogno di:
- Un server Ubuntu 22.04 e un utente non-root con privilegi sudo. Puoi apprendere di più su come configurare un utente con questi privilegi nella nostra guida Configurazione Iniziale del Server con Ubuntu 22.04.
- Nginx installato, seguendo Come installare Nginx su Ubuntu 22.04.
- A TLS/SSL certificate configured for your server. You have three options:
- Puoi ottenere un certificato gratuito da Let’s Encrypt seguendo Come proteggere Nginx con Let’s Encrypt su Ubuntu 22.04.
- Puoi anche generare e configurare un certificato autofirmato seguendo Come creare un certificato SSL autofirmato per Nginx in Ubuntu 22.04.
- Puoi acquistarne uno da un altro fornitore e configurare Nginx per utilizzarlo seguendo i Passaggi 3 e 4 di Come creare un certificato SSL autofirmato per Nginx in Ubuntu 22.04.
Utilizzeremo il nome di dominio il_tuo_dominio in questo tutorial, ma dovresti sostituirlo con il tuo nome di dominio.
- A new location for your document root. In this tutorial, we will use the
/mnt/volume-nyc3-01
directory for our new location. If you are using Block Storage on DigitalOcean, this guide will show you how to create and attach your volume. Your new document root location is configurable based on your needs, however. If you are moving your document root to a different storage device, you will want to select a location under the device’s mount point.
Passaggio 1 — Copiare i file nella nuova posizione
Su una nuova installazione di Nginx, la radice del documento si trova in /var/www/html
. Seguendo le guide preliminari, tuttavia, hai creato una nuova radice del documento, /var/www/your_domain/html
. È possibile che tu abbia anche radici di documenti aggiuntive. In questo passaggio, stabiliremo la posizione delle nostre radici dei documenti e copieremo i file pertinenti nella loro nuova posizione.
Puoi cercare la posizione delle tue radici dei documenti utilizzando grep
. Cerchiamo nella directory /etc/nginx/sites-enabled
per limitare il nostro focus ai siti attivi. Il flag -R
garantisce che grep
stampi sia la riga con la direttiva root
che il nome del file completo nel suo output:
Se hai seguito i tutorial preliminari su un server nuovo, il risultato sarà simile a questo:
Output/etc/nginx/sites-enabled/your_domain: root /var/www/your_domain/html;
/etc/nginx/sites-enabled/default: root /var/www/html;
/etc/nginx/sites-enabled/default: # deny access to .htaccess files, if Apache's document root
/etc/nginx/sites-enabled/default:# root /var/www/your_domain;
Se hai configurazioni preesistenti, i tuoi risultati potrebbero differire da quanto mostrato qui. In entrambi i casi, puoi utilizzare il feedback di grep
per assicurarti di spostare i file desiderati e aggiornare i file di configurazione appropriati.
Ora che hai confermato la posizione della tua radice dei documenti, puoi copiare i file nella loro nuova posizione con rsync
. Utilizzando il flag -a
si conservano i permessi e altre proprietà della directory, mentre -v
fornisce un output dettagliato in modo da poter seguire il progresso della sincronizzazione:
Nota: Assicurati che non ci sia una barra finale sulla directory, che potrebbe essere aggiunta se utilizzi il completamento automatico con il tab. Quando c’è una barra finale, rsync
riverserà i contenuti della directory nel punto di montaggio invece di trasferirli in una directory html
contenente.
Vedrai un output simile al seguente:
Outputsending incremental file list
created directory /mnt/volume-nyc3-01
html/
html/index.html
sent 318 bytes received 39 bytes 714.00 bytes/sec
total size is 176 speedup is 0.49
Con i nostri file al loro posto, passiamo a modificare la nostra configurazione Nginx per riflettere questi cambiamenti.
Passaggio 2 — Aggiornamento dei file di configurazione
Nginx fa uso sia di file di configurazione globali che specifici del sito. Modificheremo il file del blocco server per il nostro progetto your_domain
: /etc/nginx/sites-enabled/your_domain
.
Nota: Ricorda di sostituire your_domain
con il nome del tuo dominio, e ricorda che modificherai i file del blocco server che sono stati generati quando hai eseguito il comando grep
nel Passaggio 1.
Inizia aprendo /etc/nginx/sites-enabled/your_domain
in un editor:
Trova la riga che inizia con root
e aggiornala con la nuova posizione della radice. Nel nostro caso sarà /mnt/volume-nyc3-01/html
:
server {
root /mnt/volume-nyc3-01/html;
index index.html index.htm index.nginx-debian.html;
. . .
}
. . .
Stai attento anche ad altri luoghi in cui vedi il percorso radice del documento originale stampato da grep
nel Passaggio 1, incluso in alias o rewrite. Dovrai anche aggiornare questi per riflettere la nuova posizione della radice del documento.
Quando hai apportato tutte le modifiche necessarie, salva e chiudi il file.
Passaggio 3 — Riavvio di Nginx
Dopo aver finito di apportare le modifiche alla configurazione, puoi riavviare Nginx e testare i risultati.
Prima, assicurati che la sintassi sia corretta:
Se tutto è in ordine, dovrebbe restituire:
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Se il test fallisce, individua e correggi i problemi.
Una volta superato il test, riavvia Nginx:
Quando il server è stato riavviato, visita i tuoi siti interessati e assicurati che funzionino come previsto. Una volta che sei sicuro che tutto sia in ordine, non dimenticare di rimuovere la copia originale dei dati:
Hai ora spostato con successo la radice del documento di Nginx in una nuova posizione.
Conclusioni
In questo tutorial, abbiamo coperto come cambiare la radice del documento Nginx in una nuova posizione. Questo può aiutarti con l’amministrazione di base del server web, come la gestione efficace di più siti su un singolo server. Ti consente anche di sfruttare dispositivi di archiviazione alternativi come lo storage a blocchi di rete, che può essere utile per scalare un sito web man mano che le sue esigenze cambiano.
Se stai gestendo un sito web trafficato o in crescita, potresti essere interessato a imparare come configurare Nginx con HTTP/2 per sfruttare la sua elevata velocità di trasferimento dei contenuti.