Wie kann ich NGINX so konfigurieren, dass statische Dateien direkt serviert werden?

Melden
  1. Einführung
  2. Grundlagen der Konfiguration
  3. Wichtige Direktiven für statische Dateien
  4. Beispielkonfiguration
  5. Weitere Einstellungen und Optimierungen
  6. Neustart von NGINX
  7. Zusammenfassung

Einführung

NGINX ist ein weitverbreiteter Webserver, der sich besonders gut für das schnelle und effiziente Ausliefern von statischen Inhalten eignet.

Wenn Sie möchten, dass NGINX bestimmte statische Dateien wie HTML, CSS, JavaScript, Bilder oder andere Assets ohne Weiterleitung an

eine Backend-Anwendung oder ein externes System ausliefert, müssen Sie die Konfiguration so anpassen, dass der Webserver direkt auf das

Grundlagen der Konfiguration

Um statische Dateien direkt zu servieren, ist es wichtig, den Pfad zu dem Verzeichnis, in dem sich die Dateien befinden, korrekt anzugeben.

Dies erfolgt in der Server-Block-Konfiguration von NGINX innerhalb der Datei nginx.conf oder einer spezifischen Site-Konfigurationsdatei,

ungefähr unter /etc/nginx/sites-available/ oder einem ähnlichen Pfad, abhängig von der Systeminstallation.

Wichtige Direktiven für statische Dateien

Die zentrale Direktive für die Angabe des Verzeichnisses, aus dem Dateien ausgeliefert werden, ist root.

Mit ihr legen Sie das Basisverzeichnis fest, in dem sich Ihre statischen Dateien befinden. Eine andere wichtige Direktive ist location,

Beispielkonfiguration

Angenommen, Ihre statischen Dateien liegen in dem Verzeichnis /var/www/meine-webseite/. Sie möchten, dass NGINX alle Anfragen an den Server,

die unter http://meine-domain.de/ eintreffen, überprüft und vorhandene Dateien aus diesem Verzeichnis ausliefert.

server { listen 80; server_name meine-domain.de; root /var/www/meine-webseite; index index.html index.htm; location / { try_files $uri $uri/ =404; }}

Hierbei bewirkt root /var/www/meine-webseite;, dass der Basisordner für Dateien festgelegt wird. Wenn der Client beispielsweise

http://meine-domain.de/bild.jpg anfordert, sucht NGINX nach /var/www/meine-webseite/bild.jpg.

Das index legt fest, welche Datei ausgeliefert wird, wenn eine Verzeichnisanfrage ohne Dateinamen ankommt.

Die Direktive try_files $uri $uri/ =404; prüft, ob die angeforderte Datei ($uri) oder das Verzeichnis ($uri/) existiert; falls beides nicht existiert,

Weitere Einstellungen und Optimierungen

Für die Auslieferung statischer Dateien ist es sinnvoll, die Cache-Kontrolle und Gzip-Kompression zu optimieren, damit die Ladezeiten reduziert werden.

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 30d; access_log off; add_header Cache-Control "public";}

Diese Einstellungen sorgen dafür, dass Dateien wie Bilder, CSS und JavaScript für 30 Tage im Browser-Cache gehalten werden, was die Performance verbessert.

Die Access-Logs werden für statische Dateien ausgeschaltet, um die Log-Dateien übersichtlicher zu halten.

Neustart von NGINX

Nachdem Sie die Konfiguration angepasst haben, müssen Sie NGINX neu laden oder neu starten, damit die Änderungen wirksam werden.

sudo nginx -tsudo systemctl reload nginx

Der erste Befehl prüft die Konfiguration auf Syntaxfehler, der zweite lädt die geänderten Einstellungen ohne kompletten Neustart des Servers.

Zusammenfassung

Durch das Setzen des root-Verzeichnisses und der passenden location-Direktive mit try_files können Sie NGINX so konfigurieren,

dass statische Dateien direkt und effizient ausgeliefert werden. Optional können Sie weitere Optimierungen wie Cache-Header und Gzip-Kompression hinzufügen,

0

Kommentare