#🎜🎜 ## 🎜🎜#nginx Seite Cache#🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜#1. 🎜#
Syntax: Proxy_cache_path path [levels=number] keys_zone=zone_name:zone_size [inactive=time] [max_size=size];
Die Direktive gibt den Cache-Pfad und einige andere Parameter an, in denen die zwischengespeicherten Daten gespeichert werden die Datei und verwenden Sie den Hashwert der Proxy-URL als Schlüssel und Dateinamen. Der Parameter „levels“ gibt die Anzahl der zwischengespeicherten Unterverzeichnisse an, zum Beispiel:
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;
/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c
Alle aktiven Schlüssel und Metadaten werden im Shared Memory Pool gespeichert. Dieser Bereich wird mit dem Parameter „keys_zone“ angegeben. Einer bezieht sich auf den Namen des gemeinsam genutzten Pools und 10 m bezieht sich auf die Größe des gemeinsam genutzten Pools.
Beachten Sie, dass jeder definierte Speicherpool einen eindeutigen Pfad haben muss, zum Beispiel:
proxy_cache_path /data/nginx/cache/one levels=1 keys_zone=one:10m; proxy_cache_path /data/nginx/cache/two levels=2:2 keys_zone=two:100m; proxy_cache_path /data/nginx/cache/three levels=1:1:2 keys_zone=three:1000m;
Wenn die zwischengespeicherten Daten nicht innerhalb der durch die Inaktivität angegebenen Zeit zwischengespeichert werden Parameter Die Anforderung wird gelöscht und der Standardwert für die Inaktivität beträgt 10 Minuten. Ein Prozess namens Cache-Manager steuert die Cache-Größe der Festplatte. Er wird zum Löschen inaktiver Caches und zur Steuerung der Cache-Größe verwendet. Diese werden im Parameter „max_size“ definiert . Die zuletzt am wenigsten verwendeten Daten (LRU-Ersetzungsalgorithmus) werden gelöscht. Die Größe des Speicherpools wird proportional zur Anzahl der zwischengespeicherten Seiten festgelegt. Die Metadatengröße einer Seite (Datei) wird vom Betriebssystem bestimmt. Sie beträgt beispielsweise 64 Byte unter freebsd/i386 und 128 Byte unter freebsd/. amd64.
proxy_cache
Syntax: Proxy_cache Zonenname;
#🎜 🎜# Standard: Keine zu verwendenden Orte.
Nach 0.7.48 folgt der Cache den Headerfeldern „expires“, „cache-control: no-cache“, „cache-control: max-age=xxx“ des Backends. Nach Version 0.7.66 werden auch die Header „cache-control: „private““ und „no-store“ befolgt. Nginx verarbeitet den „vary“-Header während des Caching-Vorgangs nicht, um sicherzustellen, dass einige private Daten nicht sichtbar sind Für alle Benutzer muss das Backend den Header „no-cache“ oder „max-age=0“ festlegen, oder der Proxy_cache_key enthält vom Benutzer angegebene Daten wie $cookie_xxx. Die Verwendung des Cookie-Werts als Teil des Proxy_cache_key kann private Daten verhindern nicht zwischengespeichert werden, sodass er an verschiedenen Orten verwendet werden kann. Geben Sie den Wert von „proxy_cache_key“ separat an, um private Daten und öffentliche Daten zu trennen. . Wenn „proxy_buffers“ deaktiviert ist, wird der Cache nicht wirksam …] Zeit;
# 🎜🎜# Standardwert: keiner
Felder verwenden: http, Server, Standort
#🎜 🎜#Stellen Sie unterschiedliche Cache-Zeiten für unterschiedliche Antworten ein, zum Beispiel: #🎜 🎜#
proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m;
Wenn Sie nur die Zeit definieren:
proxy_cache_valid 5m;
3. Erstellen Sie ein neues Cache-Verzeichnis
proxy_cache_valid 200 302 10m; proxy_cache_valid 301 1h; proxy_cache_valid any 1m;
[root@nginx ~]# vim /etc/nginx/nginx.conf proxy_cache_path /data/nginx/cache/webserver levels=1:2 keys_zone=webserver:20m max_size=1g; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://webservers; proxy_set_header x-real-ip $remote_addr; proxy_cache webserver; proxy_cache_valid 200 10m; } }
Hinweis: Wenn Sie Google Chrome zum Testen verwenden, Sie können f12 drücken, um es Entwicklungstools aufzurufen, die Netzwerkoption auswählen, wir können die Antwortheader sehen, hier können wir sehen, ob wir Cache anfordern, aber wir können es noch nicht sehen. Lassen Sie es uns konfigurieren und erneut testen.
6. Cache-Variablenbeschreibung
$server_addr
Serveradresse, nach Abschluss des Systems einmalig Dieser Wert kann nach dem Aufruf ermittelt werden. Wenn Sie den Systemaufruf umgehen möchten, müssen Sie die Adresse in listen angeben und den Bind-Parameter verwenden.
$upstream_cache_status
expired - abgelaufen. Die Anfrage wird an das Backend gesendet.
hit hit
[root@nginx ~]# mkdir -pv /data/nginx/cache/webserver
[root@nginx webserver]# service nginx reload nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful 重新载入 nginx: [确定]
注,从图中我们可以看到,我们访问的服务器是192.168.18.208,缓存命中。大家可以看到是不是很直观啊。下面我们看一下缓存目录。
9.查看一下缓存目录
[root@nginx ~]# cd /data/nginx/cache/webserver/f/63/ [root@nginx 63]# ls 681ad4c77694b65d61c9985553a2763f
注,缓存目录里确实有缓存文件。
Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie den Nginx-Seiten-Cache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!