Heim >Betrieb und Instandhaltung >Nginx >Nginx-Cache-Nutzung

Nginx-Cache-Nutzung

(*-*)浩
(*-*)浩Original
2019-12-26 15:07:113993Durchsuche

Nginx-Cache-Nutzung

Zwischen dem Client und dem „Origin-Server“ befindet sich ein Web-Cache, der eine Kopie aller sichtbaren Inhalte speichert. Wenn ein Client Inhalte anfordert, die im Cache gespeichert sind, kann der Inhalt direkt aus dem Cache abgerufen werden, ohne mit dem Server zu kommunizieren. (Empfohlenes Lernen: nginx use )

Da der Web-Cache „näher“ am Client liegt, kann er auf diese Weise die Antwortleistung verbessern und ihn effizienter und effizienter nutzen Wenden Sie Anwendungen effizienter an, da der Server die Seite nicht für jede Anfrage generieren muss.

Zwischen dem Browser und dem Anwendungsserver gibt es mehrere „potenzielle“ Caches, wie zum Beispiel: Client-Browser-Cache, Zwischencache, Content Delivery Network (CDN) sowie Lastausgleich und Reverse-Proxy auf dem Server. Caching, gerade auf der Ebene des Reverse-Proxys und des Lastausgleichs, kann eine große Hilfe bei der Verbesserung der Leistung sein.

Zum Beispiel habe ich letztes Jahr eine Aufgabe übernommen, die darin bestand, die Leistung einer langsam ladenden Website zu optimieren.

Das erste, was mir auffiel, war, dass die Website fast über 1 Sekunde brauchte, um die Startseite zu erstellen. Nach einer Reihe von Debugging-Vorgängen stellte ich fest, dass der Grund für das langsame Laden darin lag, dass die Seite als nicht zwischenspeicherbar markiert war, d. h. die Seite wurde als Reaktion auf jede Anfrage dynamisch generiert.

Da die Seite selbst keine häufigen Änderungen erfordert und keine Personalisierung erfordert, besteht hierfür eigentlich keine Notwendigkeit.

Um meine Schlussfolgerung zu überprüfen, habe ich alle 5 Sekunden die Seite markiert, die zwischengespeichert werden soll. Allein durch diese Anpassung kann ich die Leistungsverbesserung deutlich spüren. Die Zeit bis zum ersten Byte verkürzt sich auf wenige Millisekunden und die Seite lädt deutlich schneller.

Nicht nur große Content Delivery Networks (CDNs) können von der Verwendung von Caching profitieren – Caching kann auch die Leistung von Load Balancern, Reverse-Proxys und Front-End-Webdiensten von Anwendungsservern verbessern.

Anhand des obigen Beispiels sehen wir, dass das Zwischenspeichern von Inhaltsergebnissen den Anwendungsserver effizienter nutzen kann, da nicht jedes Mal wiederholte Seitengenerierungsarbeiten durchgeführt werden müssen. Darüber hinaus kann Web-Caching auch zur Verbesserung der Website-Zuverlässigkeit eingesetzt werden.

Wenn der Server ausfällt oder ausgelastet ist, ist es besser, NGINX so zu konfigurieren, dass es den zwischengespeicherten Inhalt an den Benutzer sendet, anstatt eine Fehlermeldung an den Benutzer zurückzugeben. Dies bedeutet, dass die Website bei einem Ausfall des Anwendungsservers oder der Datenbank einige oder sogar alle Funktionen aufrechterhalten kann.

So installieren und konfigurieren Sie den Basiscache

Wir benötigen nur zwei Befehle, um den Basiscache zu aktivieren: Proxy_cache_path und Proxy_cache. Proxy_cache_path wird verwendet, um den Cache-Pfad und die Konfiguration festzulegen, und Proxy_cache wird verwendet, um das Caching zu aktivieren.

proxy_cache_path/path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m

use_temp_path=off;

server {

...

location / {

proxy_cachemy_cache;

proxy_pass http://my_upstream;

}

}

1. Das für das Caching verwendete lokale Festplattenverzeichnis ist /path/to/cache/

2.levels legt ein zweistufiges Hierarchieverzeichnis in /path/to/cache/ fest.

Das Platzieren einer großen Anzahl von Dateien in einem einzigen Verzeichnis kann zu einem langsamen Dateizugriff führen. Daher empfehlen wir für die meisten Bereitstellungen eine zweistufige Verzeichnishierarchie. Wenn der Level-Parameter nicht konfiguriert ist, legt NGINX alle Dateien im selben Verzeichnis ab.

3.keys_zone richtet einen gemeinsamen Speicherbereich ein, der zum Speichern von Cache-Schlüsseln und Metadaten verwendet wird, ähnlich wie bei der Verwendung von Timern.

Durch das Ablegen einer Kopie des Schlüssels im Speicher kann NGINX schnell entscheiden, ob eine Anfrage ein „HIT“ oder ein „MISS“ ist, ohne die Festplatte abzurufen, was die Abrufgeschwindigkeit erheblich verbessert.

Ein 1-MB-Speicherplatz kann etwa 8.000 Schlüssel speichern, sodass der oben konfigurierte 10-MB-Speicherplatz fast 80.000 Schlüssel speichern kann.

4.max_size legt die Obergrenze des Caches fest (10G im obigen Beispiel). Dies ist optional; wenn kein Wert angegeben wird, kann der Cache wachsen und den gesamten verfügbaren Speicherplatz verbrauchen.

Wenn der Cache dieses Limit erreicht, ruft der Prozessor den Cache-Manager auf, um die zuletzt verwendeten Dateien zu entfernen und so den Cache-Speicherplatz unter dieses Limit zu reduzieren.

5.inactive gibt die Zeit an, die das Element im Speicher verbleiben kann, ohne dass darauf zugegriffen wird. Wenn im obigen Beispiel eine Datei nicht innerhalb von 60 Minuten angefordert wird, löscht der Cache-Manager sie automatisch aus dem Speicher, unabhängig davon, ob die Datei abgelaufen ist. Der Standardwert dieses Parameters beträgt 10 Minuten (10 m).

Beachten Sie, dass sich inaktive Inhalte von abgelaufenen Inhalten unterscheiden. NGINX löscht abgelaufene Inhalte, die im Cache-Control-Header angegeben sind (Cache-Control:max-age=120 in diesem Beispiel), nicht automatisch.

Abgelaufene Inhalte werden nur gelöscht, wenn nicht innerhalb der angegebenen Zeit der Inaktivität darauf zugegriffen wird.

Wenn auf abgelaufene Inhalte zugegriffen wird, aktualisiert NGINX diese vom ursprünglichen Server und aktualisiert den entsprechenden inaktiven Timer.

6. NGINX legt die Dateien, die in den Cache geschrieben werden sollen, zunächst in einen temporären Speicherbereich. Der Befehl use_temp_path=off weist NGINX an, diese Dateien beim Zwischenspeichern in dasselbe Verzeichnis zu schreiben.

Wir empfehlen dringend, den Parameter auf „Off“ zu setzen, um unnötige Datenkopien im Dateisystem zu vermeiden. use_temp_path wurde in NGINX Version 1.7 und NGINX Plus R6 eingeführt.

Schließlich beginnt der Befehl „proxy_cache“ mit dem Zwischenspeichern von Inhalten, deren URL mit dem Standortteil übereinstimmt (in diesem Fall „/“). Sie können dem Serverabschnitt auch den Befehl „proxy_cache“ hinzufügen, der den Cache auf alle Dienste anwendet, deren Standorte keinen eigenen Befehl „proxy_cache“ angeben.

Das obige ist der detaillierte Inhalt vonNginx-Cache-Nutzung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn