KlarDev Webentwicklung
Infrastructure as Code

High-Performance NGINX Tuning

Maßgeschneiderte Server-Konfiguration für moderne Astro-Applikationen. Maximale Sicherheit (A+), HTTP/2 und intelligente Caching-Strategien.

#NGINX #SSL A+ #HTTP/2 #IPv6
Herausforderung

"It works on my machine" ist nicht genug

Moderne Frontend-Frameworks wie Astro oder React stellen spezifische Anforderungen an den Webserver. Standard-Konfigurationen führen oft zu MIME-Type Fehlern bei ES-Modulen, schlechtem Caching oder Sicherheitslücken. Ziel war eine "Production-Grade" Umgebung.

MIME-Type Hölle

Standard NGINX erkennt `.mjs` Dateien oft nicht korrekt als Javascript, was zum Absturz von Astro-Apps führt.

Sicherheits-Risiken

Ohne explizite Security-Headers sind Nutzer anfällig für XSS und Clickjacking Attacken (fehlendes HSTS/CSP).

Ineffizientes Caching

Die "Cache Everything" Strategie verhindert, dass Nutzer sofort Updates sehen. "Cache Nothing" macht die Seite langsam.

Single Page Routing

Bei direktem Aufruf von Unterseiten (z.B. /kontakt) liefert ein Standard-Server 404 Fehler statt der App.

Lösungsansätze

1. Intelligente "Split-Caching" Strategie

Das Kernproblem von Caching gelöst: Ich trenne HTML (Entry Points) von Assets (Hashed Files). HTML wird nie gecacht (Nutzer sehen sofort Updates), während Assets (CSS/JS/IMG) als immutable markiert und für 1 Jahr im Browser gespeichert werden.
nginx.conf
# 1. HTML: Never Cache (Fresh Content)
location ~* \.(html|json)$ {
    expires -1;
    add_header Cache-Control "no-store, must-revalidate";
}

# 2. Assets: Cache Forever (Performance)
location ^~ /assets/ {
    expires 1y;
    add_header Cache-Control "public, immutable, no-transform";
    access_log off; # Save disk I/O
}

2. Security Hardening & Compression

Sicherheit ist in Deutschland Pflicht (DSGVO). Durch strikte Header verhindere ich Clickjacking und MIME-Sniffing. Gleichzeitig sorgt Gzip Level 9 für minimale Payload-Größen, während HTTP/2 Multiplexing hunderte Assets parallel lädt, ohne die Verbindung zu blockieren.
nginx.conf
# Hardened Security Headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin";

# Maximum Compression
gzip_comp_level 9;
gzip_types text/plain application/javascript image/svg+xml;

IPv6 Ready

Zukunftssichere Konfiguration durch Dual-Stack Support (IPv4 & IPv6 listeners) für maximale Erreichbarkeit.

Astro Fixes

Erzwungene MIME-Types für `.mjs` und `.avif` Dateien, die von älteren NGINX Versionen oft falsch ausgeliefert werden.

SPA Fallback

`try_files $uri /index.html` garantiert, dass Deep-Links und Browser-Refresh in Single Page Apps funktionieren.

Custom 404

Interner Redirect auf eine statische `404.html`, um Server-Signatur zu verbergen und UX zu erhalten.

Projektstart

Bereit für den nächsten Schritt?

Unverbindlich, strukturiert und ohne Verkaufsdruck

Bereit für den nächsten Schritt?

Beschreiben Sie kurz Ihr Vorhaben. Sie erhalten eine konkrete Ersteinschätzung zu Machbarkeit, Budget und Timeline — in der Regel innerhalb von 24h.

Antwortgarantie

Ihre Daten sind sicher (DSGVO-konform). Keine Kaltakquise.