Hoe een Nginx Web Root naar een nieuwe locatie te verplaatsen op Ubuntu 22.04

Introductie

Op Ubuntu slaat de Nginx webserver zijn documenten op in /var/www/html, dat zich meestal op het hoofdbestandssysteem bevindt samen met de rest van het besturingssysteem. Soms is het echter handig om de documentroot naar een andere locatie te verplaatsen, zoals een apart gekoppeld bestandssysteem. Als je bijvoorbeeld meerdere websites bedient vanuit dezelfde Nginx-instantie, kun je door de documentroot van elke site op zijn eigen volume te plaatsen, schalen in reactie op de behoeften van een specifieke site of klant.

In deze handleiding verplaats je een Nginx-documentroot naar een nieuwe locatie.

Vereisten

Om deze handleiding te voltooien, heb je nodig:

We zullen de domeinnaam uw_domein in deze tutorial gebruiken, maar u moet deze vervangen door uw eigen domeinnaam.

  • 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.

Stap 1 — Bestanden kopiëren naar de nieuwe locatie

Bij een nieuwe installatie van Nginx bevindt de document root zich op /var/www/html. Door de vereiste handleidingen te volgen, heb je echter een nieuwe document root aangemaakt, /var/www/je_domein/html. Mogelijk heb je ook extra document roots. In deze stap zullen we de locatie van onze document roots vaststellen en de relevante bestanden naar hun nieuwe locatie kopiëren.

Je kunt zoeken naar de locatie van je document roots met grep. Laten we zoeken in de /etc/nginx/sites-enabled-directory om ons te beperken tot actieve sites. De -R-vlag zorgt ervoor dat grep zowel de regel met de root-directive als de volledige bestandsnaam in zijn uitvoer zal weergeven:

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

Als je de vereiste tutorials hebt gevolgd op een nieuwe server, zal het resultaat er zo uitzien:

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;

Als je al bestaande setups hebt, kunnen je resultaten verschillen van wat hier wordt getoond. In beide gevallen kun je de feedback van grep gebruiken om ervoor te zorgen dat je de gewenste bestanden verplaatst en de juiste configuratiebestanden bijwerkt.

Nu je de locatie van je document root hebt bevestigd, kun je de bestanden naar hun nieuwe locatie kopiëren met rsync. Door de -a-vlag te gebruiken, worden de machtigingen en andere directory-eigenschappen behouden, terwijl -v gedetailleerde uitvoer geeft zodat je de voortgang van de synchronisatie kunt volgen:

Let op: Zorg ervoor dat er geen schuine streep aan het einde van de directory staat, deze kan worden toegevoegd als u tabvoltooiing gebruikt. Als er een schuine streep aan het einde staat, zal rsync de inhoud van de directory dumpen naar het koppelingspunt in plaats van het over te brengen naar een bevattende html-directory.

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

Je ziet uitvoer zoals het volgende:

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

Met onze bestanden op hun plaats, laten we doorgaan met het aanpassen van onze Nginx-configuratie om deze wijzigingen te weerspiegelen.

Stap 2 — Het bijwerken van de configuratiebestanden

Nginx maakt gebruik van zowel globale als sitespecifieke configuratiebestanden. We zullen het serverblokbestand voor ons project your_domain aanpassen: /etc/nginx/sites-enabled/your_domain.

Let op: Vergeet niet om your_domain te vervangen door uw domeinnaam, en onthoud dat u de serverblokbestanden zult aanpassen die zijn uitvoerden toen u de grep-opdracht uitvoerde in Stap 1.

Begin met het openen van /etc/nginx/sites-enabled/your_domain in een editor:

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

Zoek de regel die begint met root en update deze met de nieuwe root-locatie. In ons geval zal dit /mnt/volume-nyc3-01/html zijn:

/etc/nginx/sites-enabled/your_domain
server {

        root /mnt/volume-nyc3-01/html;
        index index.html index.htm index.nginx-debian.html;
        . . .
}
. . .

Houd ook in de gaten of je de oorspronkelijke document-rootmap ziet uitvoeren door grep in Stap 1, inclusief in aliassen of herschrijvingen. Je zult deze ook willen bijwerken om de nieuwe locatie van de document-root weer te geven.

Wanneer je alle noodzakelijke wijzigingen hebt aangebracht, sla het bestand dan op en sluit het.

Stap 3 – Nginx herstarten

Zodra je de configuratiewijzigingen hebt aangebracht, kun je Nginx herstarten en de resultaten testen.

Ten eerste, controleer of de syntaxis correct is:

  1. sudo nginx -t

Als alles in orde is, zou het moeten retourneren:

Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Als de test mislukt, zoek dan de problemen op en los ze op.

Zodra de test slaagt, herstart Nginx:

  1. sudo systemctl restart nginx

Wanneer de server is herstart, bezoek dan je betrokken sites en zorg ervoor dat ze naar verwachting werken. Zodra je ervan overtuigd bent dat alles in orde is, vergeet dan niet om de oorspronkelijke kopie van de gegevens te verwijderen:

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

Je hebt nu succesvol de document-root van Nginx verplaatst naar een nieuwe locatie.

Conclusie

In deze tutorial hebben we behandeld hoe je de document root van Nginx kunt wijzigen naar een nieuwe locatie. Dit kan je helpen bij basiswebserverbeheer, zoals het effectief beheren van meerdere sites op één server. Het stelt je ook in staat om gebruik te maken van alternatieve opslagapparaten zoals netwerk blokopslag, wat handig kan zijn bij het schalen van een website naarmate de behoeften veranderen.

Als je een drukke of groeiende website beheert, ben je misschien geïnteresseerd in het leren hoe je Nginx kunt instellen met HTTP/2 om te profiteren van zijn hoge overdrachtssnelheid voor inhoud.

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