Nginx Server Blocks verstehen: Häufige Konfigurationsfragen

Dieser Artikel beantwortet häufig gestellte Fragen zur Konfiguration von Nginx Server Blocks, einschließlich Struktur, Location-Direktiven und der effizienten Bereitstellung statischer Inhalte für neue Deployments.

Nginx Server Blocks (das Äquivalent zu Apache Virtual Hosts) sind entscheidend für das Hosting mehrerer Websites auf einem einzigen Server. Hier sind die Antworten auf die häufigsten Fragen bei der Einrichtung.

Was ist die grundlegende Struktur eines Server Blocks?

Ein Server Block wird innerhalb der http-Direktive in der nginx.conf oder in separaten Dateien unter /etc/nginx/sites-available/ definiert:

server {
    listen 80;
    server_name beispiel.de www.beispiel.de;

    root /var/www/beispiel;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

Wie funktionieren Location-Direktiven?

Die location-Direktive bestimmt, wie Nginx Anfragen basierend auf dem URL-Pfad verarbeitet. Die Priorität ist wichtig:

  • =: Exakte Übereinstimmung.
  • ^~: Längste Übereinstimmung ohne Regex.
  • ~ / ~*: Case-sensitive bzw. case-insensitive Regex-Übereinstimmung.

Tipps für statische Inhalte

Um statische Inhalte effizient bereitzustellen, sollten Sie Caching-Header hinzufügen:

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

Vergessen Sie nach jeder Änderung nicht, die Konfiguration mit nginx -t zu testen und den Dienst mit systemctl reload nginx neu zu laden.