So verschieben Sie einen Nginx-Webstamm an einen neuen Speicherort unter Ubuntu 18.04

Einführung

Unter Ubuntu speichertNginx web server seine Dokumente in/var/www/html, das sich normalerweise im Root-Dateisystem mit dem Rest des Betriebssystems befindet. Manchmal ist es jedoch hilfreich, das Dokumentstammverzeichnis an einen anderen Speicherort zu verschieben, z. B. in ein separates bereitgestelltes Dateisystem. Wenn Sie beispielsweise mehrere Websites von derselben Nginx-Instanz bedienen, können Sie den Dokumentenstamm jeder Site auf ein eigenes Volume setzen, um die Skalierung an die Anforderungen einer bestimmten Site oder eines bestimmten Clients anzupassen.

In diesem Handbuch verschieben Sie einen Nginx-Dokumentstamm an einen neuen Speicherort.

Voraussetzungen

Um diesen Leitfaden zu vervollständigen, benötigen Sie:

In diesem Lernprogramm wird der Domainnameexample.com verwendet. Sie sollten diesen jedoch durch Ihren eigenen Domainnamen ersetzen.

  • Ein neuer Speicherort für Ihren Dokumentenstamm. In diesem Tutorial verwenden wir das Verzeichnis/mnt/volume-nyc3-01 für unseren neuen Speicherort. Wenn Sie Block Storage auf DigitalOcean verwenden, zeigt Ihnenthis guide, wie Sie Ihr Volume erstellen und anhängen. Der neue Dokumentstammspeicherort kann jedoch Ihren Anforderungen entsprechend konfiguriert werden. Wenn Sie das Stammverzeichnis Ihres Dokuments auf ein anderes Speichergerät verschieben, möchten Sie einen Speicherort unter dem Bereitstellungspunkt des Geräts auswählen.

[[Schritt 1 - Kopieren von Dateien an den neuen Speicherort]] == Schritt 1 - Kopieren von Dateien an den neuen Speicherort

Bei einer Neuinstallation von Nginx befindet sich der Dokumentenstamm bei/var/www/html. Durch Befolgen der erforderlichen Anleitungen haben Sie jedoch einen neuen Dokumentstamm erstellt,/var/www/example.com/html. Möglicherweise verfügen Sie auch über zusätzliche Dokumentstämme. In diesem Schritt legen wir den Speicherort unserer Dokumentstämme fest und kopieren die relevanten Dateien an ihren neuen Speicherort.

Sie können mitgrep nach dem Speicherort Ihrer Dokumentwurzeln suchen. Lassen Sie uns im Verzeichnis/etc/nginx/sites-enableduchen, um unseren Fokus auf aktive Sites zu beschränken. Das Flag-R stellt sicher, dassgrep sowohl die Zeile mit der Direktiveroot als auch den vollständigen Dateinamen in der Ausgabe druckt:

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

Wenn Sie die vorausgesetzten Lernprogramme auf einem neuen Server ausgeführt haben, sieht das Ergebnis folgendermaßen aus:

Output/etc/nginx/sites-enabled/example.com:           root /var/www/example.com/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/example.com;

Wenn Sie bereits Setups haben, können Ihre Ergebnisse von den hier gezeigten abweichen. In beiden Fällen können Sie das Feedback vongrep verwenden, um sicherzustellen, dass Sie die gewünschten Dateien verschieben und die entsprechenden Konfigurationsdateien aktualisieren.

Nachdem Sie den Speicherort Ihres Dokumentstamms bestätigt haben, können Sie die Dateien mitrsync an ihren neuen Speicherort kopieren. Wenn Sie das Flag-a verwenden, bleiben die Berechtigungen und andere Verzeichniseigenschaften erhalten, während-v eine ausführliche Ausgabe bereitstellt, damit Sie den Fortschritt der Synchronisierung verfolgen können:

[.note] #Note: Stellen Sie sicher, dass das Verzeichnis keinen abschließenden Schrägstrich enthält, der hinzugefügt werden kann, wenn Sie die Tab-Vervollständigung verwenden. Wenn es einen abschließenden Schrägstrich gibt, speichertrsync den Inhalt des Verzeichnisses in den Mount-Punkt, anstatt ihn in ein Verzeichnis mithtml zu übertragen.
#

sudo rsync -av /var/www/example.com/html /mnt/volume-nyc3-01

Sie sehen die Ausgabe wie folgt:

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

Nachdem unsere Dateien vorhanden sind, ändern wir die Nginx-Konfiguration, um diese Änderungen widerzuspiegeln.

[[Schritt-2 - Aktualisieren der Konfigurationsdateien]] == Schritt 2 - Aktualisieren der Konfigurationsdateien

Nginx verwendet sowohl globale als auch standortspezifische Konfigurationsdateien. Hintergrundinformationen zur Hierarchie der Konfigurationsdateien finden Sie unter“How To Configure The Nginx Web Server On a Virtual Private Server”. Wir werden dieserver block file for our example.com project ändern:/etc/nginx/sites-enabled/example.com.

[.note] #Note: Denken Sie daran, dass in Ihrem Fallexample.comyour_domain_name ist und dass Sie die Serverblockdateien ändern, die beim Ausführen vongrep ausgegeben wurden Befehl in Schritt 1.
#

Öffnen Sie zunächst/etc/nginx/sites-enabled/example.com in einem Editor:

sudo nano /etc/nginx/sites-enabled/example.com

Suchen Sie die Zeile, die mitroot beginnt, und aktualisieren Sie sie mit dem neuen Stammspeicherort. In unserem Fall ist dies/mnt/volume-nyc3-01/html:

/etc/nginx/sites-enabled/example.com

server {

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

Achten Sie auf andere Stellen, an denen der ursprüngliche Dokumentstammpfad in Schritt 1 vongrep ausgegeben wird, einschließlich in Aliasnamen oder Umschreibungen. Sie sollten diese auch aktualisieren, um den neuen Speicherort des Dokumentstamms widerzuspiegeln.

Wenn Sie alle erforderlichen Änderungen vorgenommen haben, speichern und schließen Sie die Datei.

[[Schritt-3 - - Neustart von Nginx]] == Schritt 3 - Neustart von Nginx

Nachdem Sie die Konfigurationsänderungen vorgenommen haben, können Sie Nginx neu starten und die Ergebnisse testen.

Stellen Sie zunächst sicher, dass die Syntax korrekt ist:

sudo nginx -t

Wenn alles in Ordnung ist, sollte es zurückkehren:

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

Wenn der Test fehlschlägt, suchen Sie die Probleme und beheben Sie sie.

Starten Sie Nginx nach erfolgreichem Test neu:

sudo systemctl restart nginx

Besuchen Sie nach dem Neustart des Servers die betroffenen Sites und stellen Sie sicher, dass sie wie erwartet funktionieren. Wenn Sie sich sicher sind, dass alles in Ordnung ist, vergessen Sie nicht, die Originalkopie der Daten zu entfernen:

sudo rm -Rf /var/www/example.com/html

Sie haben Ihr Nginx-Dokumentenstammverzeichnis nun erfolgreich an einen neuen Speicherort verschoben.

Fazit

In diesem Lernprogramm wurde erläutert, wie Sie den Nginx-Dokumentstamm in einen neuen Speicherort ändern. Dies kann Ihnen bei der grundlegenden Webserververwaltung helfen, z. B. bei der effektiven Verwaltung mehrerer Websites auf einem einzelnen Server. Sie können auch alternative Speichergeräte wie z. B. Netzwerkblockspeicher nutzen, die bei der Skalierung einer Website hilfreich sein können, wenn sich ihre Anforderungen ändern.

Wenn Sie eine geschäftige oder wachsende Website verwalten, möchten Sie möglicherweisehow to set up Nginx with HTTP/2lernen, um die hohe Übertragungsgeschwindigkeit für Inhalte zu nutzen. In diesem Vergleich vonfive ways to improve your production web application server setup erfahren Sie auch mehr über die Verbesserung der Produktionserfahrung.

Related