Wie man Nginx verwendet, um einen statischen Dateiserver zu hosten
Nginx ist ein Webserver, der verwendet werden kann, um statische Dateien zu hosten. Dieses Tutorial beschreibt, wie man Nginx verwendet, um einen statischen Dateiserver zu hosten.
Nach Abschluss dieses Tutorials können Sie:
- Verzeichnisse durchsuchen
- Zu Unterverzeichnissen und Dateien navigieren
- Dateien über den Browser herunterladen
Nginx konfigurieren
Zuerst müssen Sie Nginx installiert haben. Wenn Sie Nginx nicht installiert haben, können Sie sich an andere Anleitungen wenden.
Nach der Installation von Nginx können Sie es konfigurieren, um einen statischen Dateiserver zu hosten. Überprüfen Sie /etc/nginx/nginx.conf, um zu sehen, ob die Konfigurationsdatei in mehrere Dateien aufgeteilt ist. Sie können den folgenden Befehl verwenden, um es zu öffnen:
vi /etc/nginx/nginx.confWenn Sie include /etc/nginx/conf.d/*.conf; im http-Abschnitt sehen können, bedeutet dies, dass die Konfigurationsdatei in mehrere Dateien aufgeteilt ist.
Sie können den folgenden Befehl verwenden, um eine neue Konfigurationsdatei zu erstellen:
vi /etc/nginx/conf.d/static-file-server.confHinweis: Möglicherweise müssen Sie
sudoverwenden, um den obigen Befehl auszuführen.sudo vi /etc/nginx/conf.d/static-file-server.conf
Fügen Sie dann die folgende Konfiguration zur Datei hinzu:
server {
listen 80;
server_name static-file-server.tinkink.net; # Ändern Sie dies in Ihren Domainnamen
root /path/to/your/static/files; # Ändern Sie dies in Ihr Verzeichnis für statische Dateien
autoindex on; # Aktivieren Sie die Verzeichnisliste
location / {
try_files $uri $uri/ =404;
}
}Hier gibt listen den zu lauschenden Port an, server_name gibt den Domainnamen oder die IP-Adresse an, root gibt das Verzeichnis für statische Dateien an und autoindex aktiviert das Verzeichnislisting.
location / passt zum Stammverzeichnis, try_files gibt die auszuprobierenden Dateien an und gibt einen 404 Fehler zurück, wenn die Datei nicht gefunden wird.
Nginx neu starten
Nachdem Sie Nginx konfiguriert haben, müssen Sie es neu starten, damit die Konfiguration wirksam wird:
sudo systemctl restart nginxoder
sudo service nginx restartAuf die Website zugreifen
Jetzt können Sie über den Browser auf die Website zugreifen, zum Beispiel: http://static-file-server.tinkink.net
Berechtigungen
Stellen Sie sicher, dass die Verzeichnisberechtigungen korrekt gesetzt sind, um Sicherheitsprobleme zu vermeiden. Da nginx möglicherweise einen eindeutigen Benutzer nginx zum Ausführen verwendet, sollten Sie den Besitzer und die Gruppe des Verzeichnisses auf diese Benutzergruppe setzen. Sie können den folgenden Befehl verwenden, um die Berechtigungen festzulegen:
chown -R nginx:nginx /Pfad/zu/Ihren/statischen/DateienWenn sich das Verzeichnis für statische Dateien im Home-Verzeichnis des Benutzers befindet, müssen Sie außerdem sicherstellen, dass das Home-Verzeichnis und das Verzeichnis für statische Dateien die korrekten Zugriffsberechtigungen haben. Es ist etwas kompliziert, daher empfehle ich Ihnen, das Verzeichnis für statische Dateien aus dem Home-Verzeichnis zu verschieben.
Wenn Sie konsequent Home-Verzeichnisse verwenden, müssen Sie den Benutzer nginx zu Ihrer Benutzergruppe hinzufügen. Sie können den folgenden Befehl verwenden:
usermod -a -G {Benutzername} nginxDann müssen Sie Berechtigungen für die Gruppe hinzufügen. Sie können den folgenden Befehl verwenden:
chmod g+rwx /home/{Benutzername}Hinweis: Ersetzen Sie
{Benutzername}durch Ihren Benutzernamen.
Wenn es immer noch nicht funktioniert, können Sie versuchen, SELinux auszuschalten. Sie können den folgenden Befehl verwenden:
sudo setenforce 0Wenn es jetzt funktioniert, können Sie SELinux dauerhaft deaktivieren. Öffnen Sie die Datei /etc/selinux/config und ändern Sie SELINUX=enforcing in SELINUX=disabled. Speichern Sie dann die Datei und starten Sie das System neu.
Schlussfolgerung
Das Einrichten eines statischen Dateiservers mit Nginx ist einfach, aber wenn Sie die Dateien im Home-Verzeichnis platzieren möchten, kann es etwas kompliziert sein.
