Come spostare una radice Web di Nginx in una nuova posizione su Ubuntu 22.04

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:

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:

  1. grep -R "root" /etc/nginx/sites-enabled

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.

  1. sudo rsync -av /var/www/your_domain/html /mnt/volume-nyc3-01

Vedrai un output simile al seguente:

Output
sending 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:

  1. sudo nano /etc/nginx/sites-enabled/your_domain

Trova la riga che inizia con root e aggiornala con la nuova posizione della radice. Nel nostro caso sarà /mnt/volume-nyc3-01/html:

/etc/nginx/sites-enabled/your_domain
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:

  1. sudo nginx -t

Se tutto è in ordine, dovrebbe restituire:

Output
nginx: 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:

  1. sudo systemctl restart 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:

  1. sudo rm -Rf /var/www/your_domain/html

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.

Source:
https://www.digitalocean.com/community/tutorials/how-to-move-an-nginx-web-root-to-a-new-location-on-ubuntu-22-04