Kontaktiere uns

info@serverion.com

NGINX Config Rewind: Serverion lässt die verlorene Kunst der Proxy-Cache-Optimierung wieder aufleben

NGINX Config Rewind: Serverion lässt die verlorene Kunst der Proxy-Cache-Optimierung wieder aufleben

Möchten Sie schnellere Websites und eine geringere Serverlast? NGINX-Proxy-Caching ist die Lösung. Durch die Speicherung häufig angeforderter Inhalte wird die Bereitstellung beschleunigt und die Belastung Ihrer Ursprungsserver reduziert. Serverion gibt praktische Tipps zur Optimierung Ihres Cache-Setups für bessere Leistung und Zuverlässigkeit.

Wichtige Erkenntnisse:

  • Servieren Sie veraltete Inhalte: Verwenden Sie zwischengespeicherte Antworten während der Server-Ausfallzeit mit Proxy-Cache-Nutzung_veraltet.
  • Hintergrundaktualisierungen: Aktualisieren Sie Cache-Einträge, ohne Benutzer zu stören, die Proxy-Cache-Hintergrundaktualisierung.
  • Überlastungen vorbeugen: Vermeiden Sie eine Überlastung Ihres Ursprungsservers mit Proxy-Cache-Sperre.

Beispiel-Setup:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; proxy_cache my_cache; proxy_cache_use_stale wird aktualisiert; proxy_cache_background_update ein; proxy_cache_lock ein; 

Diese Einstellungen gewährleisten schnelle Reaktionen, effiziente Ressourcennutzung und zuverlässige Inhaltsbereitstellung. Egal, ob Sie ein kleiner VPS oder ein Server mit hohem Datenverkehr: Diese Techniken können Ihnen dabei helfen, das Beste aus dem NGINX-Proxy-Caching herauszuholen.

NGINX: Inhalts-Caching mit Reverse-Proxy (superschnell …

NGINX

Grundlagen des NGINX-Proxy-Caching

Die Cache-Tuning-Techniken von Serverion basieren auf den Kernprinzipien des NGINX-Proxy-Cachings, bei dem Kopien von Originalinhalten gespeichert und bereitgestellt werden. Das System verwendet drei Hauptkomponenten: den Cache-Pfad, eine gemeinsam genutzte Speicherzone und einen Cache-Manager, der abgelaufene oder zuletzt verwendete (LRU-)Dateien entfernt, wenn der Cache sein Limit erreicht.

NGINX-Proxy-Cache-Vorgang

Wenn NGINX eine Anfrage verarbeitet, prüft es zunächst seine gemeinsam genutzte Speicherzone, um festzustellen, ob der angeforderte Inhalt bereits zwischengespeichert ist. Diese In-Memory-Suche ermöglicht eine schnelle Ermittlung von Cache-Treffern oder -Fehlschlägen. Zur Orientierung: Eine 1-MB-Schlüsselzone kann etwa 8.000 Cache-Schlüssel speichern[1].

So funktioniert der Caching-Prozess:

  • NGINX hasht die Anfrage, um einen eindeutigen Cache-Schlüssel zu erstellen.
  • Es durchsucht die gemeinsam genutzte Speicherzone nach diesem Schlüssel.
  • Wenn der Schlüssel gefunden wird (Cache-Treffer), wird der Inhalt direkt aus dem Cache bereitgestellt.
  • Wenn der Schlüssel nicht gefunden wird (Cache-Fehler), wird der Inhalt vom Ursprungsserver abgerufen und zur späteren Verwendung im Cache gespeichert.

Serverion optimiert die Leistung, indem es effiziente Schlüsselsuchen gewährleistet und den Cache-Speicher mithilfe von Verzeichnishierarchien organisiert.

Core Cache-Elemente

Richtlinie Zweck Auswirkungen
Proxy-Cache-Pfad Gibt den Cache-Speicherort an Bestimmt, wo und wie Inhalte zwischengespeichert werden
proxy_cache Aktiviert das Caching für bestimmte Anfragen Ermöglicht das Caching innerhalb eines Standortblocks
Schlüsselzone Reserviert gemeinsamen Speicher für Cache-Schlüssel Ermöglicht schnelle In-Memory-Lookups
inaktiv Definiert, wie lange nicht verwendete Elemente im Cache bleiben Steuert die Cache-Aktualität und den Zeitpunkt der Auslagerung

Um die Leistung zu maximieren, verwenden Sie eine zweistufige Ebenen Hierarchie, um Verlangsamungen des Dateisystems zu verhindern. Zusätzlich setzen Sie use_temp_path=aus um zwischengespeicherte Dateien direkt an ihren endgültigen Speicherort zu schreiben und so den E/A-Overhead zu reduzieren.

NGINX respektiert Cache-Anweisungen des Ursprungsservers. Es speichert nur Antworten, die eine Läuft ab Kopfzeile mit einem zukünftigen Datum oder einem Cache-Kontrolle Kopfzeile mit einem Höchstalter Wert größer als Null.

Sie können diese Prinzipien jetzt in Ihrem NGINX-Proxy-Cache-Setup anwenden.

[1] NGINX-Dokumentation: Eine 1 MB große Schlüsselzone speichert Daten für etwa 8.000 Schlüssel.

NGINX Proxy Cache Setup-Handbuch

Erfahren Sie Schritt für Schritt, wie Sie das NGINX-Proxy-Caching konfigurieren und optimieren.

Cache-Parametereinstellungen

Die Grundlage des NGINX-Proxy-Cache-Setups ist die Proxy-Cache-Pfad -Direktive. Hier ist eine Beispielkonfiguration:

proxy_cache_path /var/cache/nginx Ebenen=1:2 Schlüsselzone=mein_Cache:10m max_size=10g inaktiv=60m use_temp_path=aus; 

Diese Konfiguration erstellt eine zweistufige Verzeichnisstruktur, reserviert 10 MB für die Schlüsselzone (reicht für ungefähr 80.000 Schlüssel), legt eine maximale Cachegröße von 10 GB fest und definiert ein Inaktivitäts-Timeout von 60 Minuten.

Zur besseren Kontrolle können Sie auch diese optionalen Anweisungen einschließen:

Richtlinie Zweck
Proxy-Cache-Nutzung_veraltet Stellt veraltete Inhalte bereit, wenn die Ursprungsserver nicht verfügbar sind
proxy_cache_revalidate Verwendet bedingte GET-Anfragen, um zu prüfen, ob der Inhalt noch gültig ist
Proxy-Cache-Hintergrundaktualisierung Aktualisiert veraltete Inhalte im Hintergrund
Proxy-Cache-Sperre Verhindert, dass mehrere Anfragen den Ursprungsserver überlasten

Nachdem Sie diese Parameter definiert haben, weisen Sie Arbeitsspeicher und Speicherplatz basierend auf dem erwarteten Datenverkehr zu.

Cache-Größenverwaltung

Um die Cachegröße effektiv zu optimieren, sollten Sie sowohl die Speicher- als auch die Festplattennutzung berücksichtigen. So geht's:

  • Speicherzonengröße Speicher zuweisen für die Schlüsselzone um Ihren Caching-Anforderungen gerecht zu werden:
    keys_zone=enterprise_cache:100m; # Unterstützt ca. 800.000 Cache-Schlüssel 
  • Speicherplatzzuweisung Passen Sie die Proxy-Cache-Pfad So geben Sie den maximalen Speicherplatz an:
    Proxy-Cache-Pfad /var/cache/nginx Ebenen=1:2 Schlüsselzone=Enterprise-Cache:100 m Maximalgröße=10 g Inaktiv=24 h Use_Temp_Pfad=aus; 

Sobald diese Parameter festgelegt sind, können Sie Ihren Cache initialisieren und aktivieren.

Cache-Initialisierung

Nachdem Sie Ihre Parameter und die Größe feinabgestimmt haben, führen Sie die folgenden Schritte aus, um das Caching zu aktivieren:

  1. Verwenden Sie die Proxy-Cache-Pfad Anweisung aus dem obigen Beispiel und fügen Sie Proxy-Cache Mein Cache zu Ihrer Konfiguration.
  2. Aktivieren Sie das Caching innerhalb der relevanten Server oder Standort Block:
    Proxy-Cache mein_Cache; 
  3. Fügen Sie optional eine der zuvor erwähnten Feinabstimmungsanweisungen ein, um die Leistung zu verbessern.
  4. Überwachen Sie den Cache-Status, indem Sie einen benutzerdefinierten Header hinzufügen:
    add_header X-Cache-Status $upstream_cache_status; 

Notiz: Laut NGINX-Dokumentation ist ein 1 MB Schlüsselzone kann ungefähr 8.000 Schlüssel speichern.

Durch diese Konfiguration wird sichergestellt, dass Ihr Cache den Datenverkehr effizient verarbeiten kann und gleichzeitig die Flexibilität für Anpassungen erhalten bleibt.

Enterprise-NGINX-Cache-Verwaltung

Sobald Ihr Cache-Pfad und Ihre Parameter festgelegt sind, ist es an der Zeit, Ihr Setup zu skalieren, um den Datenverkehr auf Unternehmensebene effektiv zu bewältigen.

Optimierung der Cache-Trefferquote

Aktivieren Sie Funktionen wie bedingte Anforderungen und Hintergrundaktualisierungen, um die Cache-Effizienz zu verbessern:

proxy_cache_revalidate ein; proxy_cache_background_update ein; proxy_cache_use_stale wird aktualisiert; 

Verhindern Sie eine Überlastung Ihres Ursprungsservers, indem Sie die folgenden Einstellungen konfigurieren:

proxy_cache_lock ein; proxy_cache_lock_timeout 5s; proxy_cache_min_uses 2; 

Verteilen Sie in Umgebungen mit hohem Datenverkehr die Cache-Last auf mehrere Speichergeräte, um die Leistung zu verbessern:

split_clients "${request_uri}" $disk { 20% "/data/cache1"; 20% "/data/cache2"; 20% "/data/cache3"; 20% "/data/cache4"; * "/data/cache5"; } 

Sobald Ihr Cache hinsichtlich der Leistung optimiert ist, konzentrieren Sie sich darauf, ihn für die Verarbeitung vertraulicher Inhalte zu sichern.

Cache-Sicherheitskontrollen

Um vertrauliche Anfragen zu schützen, umgehen Sie das Caching und passen Sie die Cache-Schlüssel nach Bedarf an:

proxy_cache_bypass $http_pragma; proxy_cache_bypass $cookie_nocache; proxy_ignore_headers Cache-Steuerung; 

Passen Sie für personalisierte Inhalte oder Cookie-basierte Anfragen den Cache-Schlüssel und die unterstützten Methoden an:

proxy_cache_key "$host$request_uri$cookie_user"; proxy_cache_methods GET HEAD POST; 

Stellen Sie nach der Sicherung Ihres Caches sicher, dass Sie seine Leistung kontinuierlich überwachen.

Cache-Leistungsüberwachung

Überwachen Sie das Cache-Verhalten mithilfe von Statusdefinitionen, um Ihr Setup zu optimieren:

Status Definition
AKTUALISIERUNG Während einer laufenden Aktualisierung werden veraltete Inhalte bereitgestellt
REVALIDIERT Zwischengespeicherter Inhalt wurde mit dem Ursprungsserver erneut validiert

Analysieren Sie die X-Cache-Status Überprüfen Sie regelmäßig Ihre Metriken und passen Sie die Anweisungen an die Verkehrsmuster an, um optimale Ergebnisse zu erzielen.

ServerionNGINX-Cache-Konfiguration

Serverion

Serverion passt die NGINX-Cache-Einstellungen an die spezifischen Anforderungen der einzelnen Workloads an. Mithilfe von Kerndirektiven optimieren sie die Cache-Konfigurationen für VPS und dedizierte Server.

Cache-Pfade nach Arbeitslast

VPS-Workloads

Bei VPS-Setups bietet diese Konfiguration ein Gleichgewicht zwischen Speichereffizienz und schnellen Reaktionszeiten:

Proxy-Cache-Pfad /data/nginx/cache Ebenen=1:2 Schlüsselzone=SERVERCACHE:10 m max. Größe=10 g inaktiv=60 m temporärer Verwendungspfad=aus; Proxy-Cache-Schlüssel "$scheme$request_method$host$request_uri"; Proxy-Cache_gültig 200 302 60 m; Proxy-Cache_gültig 404 1 m; 

Der Schlüsselzone Die Größe ist auf etwa 80.000 Schlüssel eingestellt.

Dedicated Servers

Für Anwendungen mit hohem Datenverkehr auf dedizierten Servern verwendet Serverion ein verteiltes Caching-System über mehrere SSDs:

Proxy-Cache-Pfad /Cache1 Ebenen=1:2 Schlüsselzone=Cache1:10m; Proxy-Cache-Pfad /Cache2 Ebenen=1:2 Schlüsselzone=Cache2:10m; Proxy-Cache-Pfad /Cache3 Ebenen=1:2 Schlüsselzone=Cache3:10m; Split-Clients "${Anforderungs-URI}" $cachezone { 33% "Cache1"; 33% "Cache2"; * "Cache3"; } 

Dieses Setup verteilt Cache-Schreibvorgänge gleichmäßig auf drei SSDs unter Verwendung der split_clients Richtlinie.

Spezifische Werte für diese Konfigurationen werden aus der Cache-Parameter-Referenztabelle von Serverion abgeleitet.

Infrastruktureinstellungen

Um die Leistung weiter zu verbessern, werden die NGINX-Worker-Einstellungen angepasst, um die Cache-Eingabe und -Ausgabe effizient zu handhaben:

worker_processes auto; worker_connections 1024; worker_cpu_affinity 0-3; # richtet Arbeiter an CPU-Kerne aus 

Diese Anpassungen stellen sicher, dass zwischengespeicherte Antworten mit maximaler Effizienz übermittelt werden.

Zusammenfassung: NGINX Cache Tuning-Ergebnisse

Serverion verbesserte die Leistung und Zuverlässigkeit seiner Hosting-Systeme durch detaillierte Proxy-Cache-Anpassungen. Durch die Verfeinerung der Cache-Hierarchie, die Verwaltung der Frische-Einstellungen und die Optimierung der Header-Verarbeitung sorgten sie für eine nahtlose Inhaltsbereitstellung. Echtzeit X-Proxy-Cache Mithilfe von Metriken konnten IT-Teams die Cache-Einstellungen effektiv anpassen, was zu schnelleren Reaktionszeiten, einer geringeren Belastung der Ursprungsserver und einer besseren Verfügbarkeit für Unternehmensabläufe führte.

Verwandte Blogbeiträge

de_DE_formal