Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So konfigurieren Sie den Nginx-Seiten-Cache

So konfigurieren Sie den Nginx-Seiten-Cache

WBOY
WBOYnach vorne
2023-05-30 19:13:303014Durchsuche

#🎜🎜 ## 🎜🎜#nginx Seite Cache#🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜#1. 🎜#


Syntax: Proxy_cache_path path [levels=number] keys_zone=zone_name:zone_size [inactive=time] [max_size=size];

#🎜 🎜 #Standardwert: keiner


Feld verwenden: http


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;

Der Dateiname ähnelt:

/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c

levels gibt die Verzeichnisstruktur an, Sie können eine beliebige 1 oder verwenden 2-stellige Zahl als Verzeichnisstruktur, z. B. x, x:x oder x:x:x. Zum Beispiel: „2“, „2:2“, „1:1:2“, es kann jedoch nur eine Drei sein Verzeichnis höchstens -Ebene.


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;

Stellen Sie die Cache-Zeit auf 10 Minuten für die Antwortcodes 200 und 302 und 1 Minute für 404-Codes ein


Wenn Sie nur die Zeit definieren:

proxy_cache_valid 5m;
# Dann werden nur Antworten mit den Codes 200, 301 und 302 zwischengespeichert.


Sie können auch verwenden Beliebiger Parameter für jede Antwort. 🎜#2. Definieren Sie einen einfachen Nginx-Cache-Server

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;
    }
}

5 .Lassen Sie es uns unten testen (Google Chrome)


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

In Version 0.8.3 kann sein Wert sein:


#🎜 🎜#missmiss


expired - abgelaufen. Die Anfrage wird an das Backend gesendet.


Aktualisierung - abgelaufen. Da „proxy/fastcgi_cache_use_stale“ aktualisiert wird, wird die ältere Version der Antwort verwendet.

veraltet – abgelaufen. Bei Verwendung von Proxy/fastcgi_cache_use_stale erhält das Backend veraltete Antworten.


hit hit

So konfigurieren Sie den Nginx-Seiten-Cache

[root@nginx ~]# mkdir -pv /data/nginx/cache/webserver

7. Laden Sie die Konfigurationsdatei neu

[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:                      [确定]
#🎜🎜 # 8.Testen Sie es


注,从图中我们可以看到,我们访问的服务器是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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen