Einführung
Unter Ubuntu speichert der Nginx-Webserver seine Dokumente im Verzeichnis /var/www/html
, das sich normalerweise auf dem Root-Dateisystem zusammen mit dem restlichen Betriebssystem befindet. Manchmal ist es jedoch hilfreich, das Dokumentenverzeichnis an einen anderen Ort zu verschieben, wie z.B. ein separates gemountetes Dateisystem. Wenn Sie beispielsweise mehrere Websites von derselben Nginx-Instanz aus bedienen, ermöglicht es Ihnen, das Dokumentenverzeichnis jeder Website auf einem eigenen Volume zu platzieren, um auf die Bedürfnisse einer bestimmten Website oder eines bestimmten Kunden reagieren zu können.
In diesem Leitfaden werden Sie ein Nginx-Dokumentenverzeichnis an einen neuen Speicherort verschieben.
Voraussetzungen
Um diesen Leitfaden abzuschließen, benötigen Sie:
- Einen Ubuntu 22.04 Server und einen nicht-root Benutzer mit sudo-Berechtigungen. Sie können mehr darüber erfahren, wie Sie einen Benutzer mit diesen Berechtigungen in unserem Leitfaden Erstkonfiguration eines Servers mit Ubuntu 22.04 einrichten.
- Nginx installiert, wie in Anleitung zur Installation von Nginx auf Ubuntu 22.04 beschrieben.
- A TLS/SSL certificate configured for your server. You have three options:
- Sie können ein kostenloses Zertifikat von Let’s Encrypt erhalten, indem Sie So sichern Sie Nginx mit Let’s Encrypt auf Ubuntu 22.04 befolgen.
- Sie können auch ein selbstsigniertes Zertifikat generieren und konfigurieren, indem Sie So erstellen Sie ein selbstsigniertes SSL-Zertifikat für Nginx in Ubuntu 22.04 befolgen.
- Sie können auch eines von einem anderen Anbieter kaufen und Nginx konfigurieren, um es zu verwenden, indem Sie Schritte 3 und 4 von So erstellen Sie ein selbstsigniertes SSL-Zertifikat für Nginx in Ubuntu 22.04 befolgen.
Wir werden den Domainnamen Ihr_Domain in diesem Tutorial verwenden, aber Sie sollten dies durch Ihren eigenen Domainnamen ersetzen.
- 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.
Schritt 1 – Dateien in den neuen Speicherort kopieren
Bei einer frischen Installation von Nginx befindet sich das Dokumentenstammverzeichnis unter /var/www/html
. Durch das Befolgen der Voraussetzungshandbücher haben Sie jedoch einen neuen Dokumentenstamm unter /var/www/ihre_domain/html
erstellt. Möglicherweise haben Sie auch zusätzliche Dokumentenstämme. In diesem Schritt werden wir den Standort unserer Dokumentenstämme festlegen und die relevanten Dateien an ihren neuen Standort kopieren.
Sie können den Standort Ihrer Dokumentenstämme mit grep
suchen. Lassen Sie uns im Verzeichnis /etc/nginx/sites-enabled
suchen, um unseren Fokus auf aktive Websites zu beschränken. Das -R
-Flag stellt sicher, dass grep
sowohl die Zeile mit der root
-Anweisung als auch den vollständigen Dateinamen in seiner Ausgabe druckt:
Wenn Sie den Voraussetzungstutorials auf einem frischen Server gefolgt sind, wird das Ergebnis wie folgt aussehen:
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;
Wenn Sie bereits bestehende Einrichtungen haben, können Ihre Ergebnisse von dem hier gezeigten abweichen. In jedem Fall können Sie das Feedback von grep
verwenden, um sicherzustellen, dass Sie die gewünschten Dateien verschieben und die entsprechenden Konfigurationsdateien aktualisieren.
Jetzt, da Sie den Standort Ihres Dokumentenstamms bestätigt haben, können Sie die Dateien an ihren neuen Standort mit rsync
kopieren. Das -a
-Flag erhält die Berechtigungen und andere Verzeichniseigenschaften, während -v
eine ausführliche Ausgabe bereitstellt, damit Sie den Fortschritt der Synchronisierung verfolgen können:
Hinweis: Stellen Sie sicher, dass am Ende des Verzeichnisses kein Schrägstrich steht, der hinzugefügt werden kann, wenn Sie die Tab-Vervollständigung verwenden. Wenn ein Schrägstrich vorhanden ist, wird rsync
den Inhalt des Verzeichnisses in das Mountpoint statt in ein enthaltendes html
-Verzeichnis übertragen.
Sie sehen eine 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
Mit unseren Dateien an Ort und Stelle gehen wir nun dazu über, unsere Nginx-Konfiguration anzupassen, um diese Änderungen widerzuspiegeln.
Schritt 2 – Aktualisierung der Konfigurationsdateien
Nginx verwendet sowohl globale als auch standortspezifische Konfigurationsdateien. Wir werden die Serverblockdatei für unser Ihr_Domain
-Projekt ändern: /etc/nginx/sites-enabled/Ihr_Domain
.
Hinweis: Ersetzen Sie Ihr_Domain
durch Ihren Domainnamen, und denken Sie daran, dass Sie die Serverblockdateien ändern werden, die ausgegeben wurden, als Sie den Befehl grep
in Schritt 1 ausgeführt haben.
Beginnen Sie damit, /etc/nginx/sites-enabled/Ihr_Domain
in einem Editor zu öffnen:
Finden Sie die Zeile, die mit root
beginnt, und aktualisieren Sie sie mit dem neuen Stammverzeichnis. In unserem Fall wird dies /mnt/volume-nyc3-01/html
sein:
server {
root /mnt/volume-nyc3-01/html;
index index.html index.htm index.nginx-debian.html;
. . .
}
. . .
Halten Sie Ausschau nach weiteren Stellen, an denen Sie den ursprünglichen Dokument-Root-Pfad sehen, der von grep
in Schritt 1 ausgegeben wird, einschließlich Aliasen oder Umleitungen. Sie müssen diese ebenfalls aktualisieren, um den neuen Speicherort des Dokument-Roots widerzuspiegeln.
Wenn Sie alle notwendigen Änderungen vorgenommen haben, speichern und schließen Sie die Datei.
Schritt 3 – Neustart von Nginx
Nachdem Sie die Konfigurationsänderungen abgeschlossen haben, können Sie Nginx neu starten und die Ergebnisse testen.
Zuerst stellen Sie sicher, dass die Syntax korrekt ist:
Wenn alles in Ordnung ist, sollte es folgendes zurückgeben:
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.
Nachdem der Test bestanden wurde, starten Sie Nginx neu:
Wenn der Server neu gestartet wurde, besuchen Sie die betroffenen Websites und stellen Sie sicher, dass sie wie erwartet funktionieren. Sobald Sie sicher sind, dass alles in Ordnung ist, vergessen Sie nicht, die ursprüngliche Kopie der Daten zu entfernen:
Sie haben Ihren Nginx-Dokument-Root erfolgreich an einen neuen Speicherort verschoben.
Fazit
In diesem Tutorial haben wir behandelt, wie man das Nginx-Dokumentenstammverzeichnis auf einen neuen Speicherort ändert. Dies kann Ihnen bei der grundlegenden Webserver-Verwaltung helfen, z.B. beim effektiven Verwalten mehrerer Websites auf einem einzigen Server. Es ermöglicht auch die Nutzung alternativer Speichergeräte wie Netzwerkblockspeicher, was beim Skalieren einer Website hilfreich sein kann, wenn sich ihre Anforderungen ändern.
Wenn Sie eine vielbeschäftigte oder wachsende Website verwalten, könnten Sie daran interessiert sein zu lernen, wie man Nginx mit HTTP/2 einrichtet, um von seiner hohen Übertragungsgeschwindigkeit für Inhalte zu profitieren.