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:
-
Ein Ubuntu 18.04-Server und ein Nicht-Root-Benutzer mit Sudo-Berechtigungen. Weitere Informationen zum Einrichten eines Benutzers mit diesen Berechtigungen finden Sie in unserem HandbuchInitial Server Setup with Ubuntu 18.04.
-
Nginx installiert, nachHow To Install Nginx on Ubuntu 18.04.
-
Ein für Ihren Server konfiguriertes TLS / SSL-Zertifikat. Sie haben drei Möglichkeiten:
-
Sie können ein kostenloses Zertifikat vonLet’s Encrypt erhalten, indem SieHow to Secure Nginx with Let’s Encrypt on Ubuntu 18.04 folgen.
-
Sie können auch ein selbstsigniertes Zertifikat generieren und konfigurieren, indem SieHow to Create a Self-signed SSL Certificate for Nginx in Ubuntu 18.04 folgen.
-
Sie könnenbuy one from another provider und Nginx für die Verwendung konfigurieren, indem Sie die Schritte 2 bis 6 vonHow to Create a Self-signed SSL Certificate for Nginx in Ubuntu 18.04 ausführen.
-
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-enabled
uchen, 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.com
your_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.