Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Wie Nginx die Cache-Kontrollkonfiguration für HTTP-Anfragen implementiert

Wie Nginx die Cache-Kontrollkonfiguration für HTTP-Anfragen implementiert

WBOY
WBOYOriginal
2023-11-08 09:35:231522Durchsuche

Wie Nginx die Cache-Kontrollkonfiguration für HTTP-Anfragen implementiert

Wie Nginx die Cache-Kontrollkonfiguration von HTTP-Anfragen implementiert

Nginx verfügt als Hochleistungs-Webserver und Reverse-Proxy-Server über leistungsstarke Cache-Verwaltungs- und Steuerungsfunktionen und kann durch Konfiguration eine Cache-Kontrolle für HTTP-Anfragen erreichen. In diesem Artikel wird detailliert vorgestellt, wie Nginx die Cache-Kontrollkonfiguration für HTTP-Anfragen implementiert, und es werden spezifische Codebeispiele bereitgestellt.

1. Übersicht über die Nginx-Cache-Konfiguration
Die Nginx-Cache-Konfiguration wird hauptsächlich über das Modul „proxy_cache“ implementiert. Dieses Modul bietet eine Fülle von Anweisungen und Parametern, die das Cache-Verhalten effektiv steuern können. Bevor Sie den Cache konfigurieren, müssen Sie das Proxy_cache-Modul in die Nginx-Konfigurationsdatei laden. Die spezifische Anweisung lautet:

load_module modules/ngx_http_proxy_module.so;

Diese Anweisung lädt das Nginx-Proxy_cache-Modul, damit wir relevante Cache-Steuerungsanweisungen in der Konfigurationsdatei verwenden können.

2. Detaillierte Erläuterung der Cache-Steuerungsanweisungen

  1. proxy_cache_path

proxy_cache_path-Direktive wird verwendet, um den Cache-Pfad und zugehörige Konfigurationsparameter wie Cache-Speicherpfad, Cache-Größe, Cache-Strategie usw. zu definieren. Die spezifische Verwendung ist wie folgt:

proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g
               inactive=60m use_temp_path=off;

In diesem Beispiel definieren wir einen Cache-Bereich mit dem Namen my_cache, der Cache-Pfad ist /data/nginx/cache, die maximale Cache-Größe beträgt 10 GB und die Cache-Ablaufzeit beträgt 60 Minuten. Es ist zu beachten, dass die Konfigurationsparameter entsprechend den tatsächlichen Anforderungen angepasst werden müssen.

  1. proxy_cache

proxy_cache-Direktive wird verwendet, um das Caching zu aktivieren und den verwendeten Cache-Bereich festzulegen, der im Standortblock konfiguriert werden kann, zum Beispiel:

location / {
    proxy_cache my_cache;
    proxy_cache_valid 200 304 5m;
    proxy_cache_valid 301 302 1h;
    proxy_cache_key $host$uri$is_args$args;
    proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
    proxy_cache_background_update on;
    proxy_cache_lock on;
    proxy_cache_lock_timeout 5s;
    proxy_cache_revalidate on;
    proxy_cache_min_uses 3;
    proxy_cache_bypass $http_x_token;
    proxy_cache_methods GET HEAD;
}

In der obigen Konfiguration haben wir den Cache-Bereich mit dem Namen my_cache und aktiviert Die Cache-Gültigkeitszeit, der Cache-Schlüssel, die Cache-Aktualisierungsstrategie und andere Parameter verschiedener Antwortstatuscodes werden festgelegt. Diese Parameter können je nach spezifischen Caching-Anforderungen flexibel konfiguriert werden.

  1. proxy_ignore_headers

proxy_ignore_headers-Direktive wird verwendet, um HTTP-Antwortheader anzugeben, die Nginx beim Zwischenspeichern ignorieren muss, zum Beispiel:

proxy_ignore_headers Cache-Control Set-Cookie;

In diesem Beispiel bitten wir Nginx, Cache-Control- und Set-Cookie-Antworten beim Zwischenspeichern von Headern zu ignorieren um die Konsistenz und Gültigkeit des Caches sicherzustellen.

  1. proxy_cache_lock

proxy_cache_lock-Direktive wird verwendet, um den gleichzeitigen Zugriff auf Cache-Inhalte zu steuern, wodurch Cache-Ausfälle, Lawinen und andere Probleme effektiv vermieden werden können, wie zum Beispiel:

proxy_cache_lock on;
proxy_cache_lock_timeout 5s;

In diesem Beispiel aktivieren wir die Cache-Sperre und legen eine 5 fest Eine Zeitüberschreitung in Sekunden, nach der weiterhin Anfragen auf den Backend-Server zugreifen, um zwischengespeicherte Inhalte zu aktualisieren.

3. Codebeispiel
Basierend auf den obigen Anweisungen zur Cache-Steuerung können wir ein vollständiges Nginx-Konfigurationsbeispiel schreiben, um die Cache-Steuerung von HTTP-Anfragen zu implementieren. Das Folgende ist ein einfaches Nginx-Konfigurationsbeispiel:

load_module modules/ngx_http_proxy_module.so;

http {
    proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g
               inactive=60m use_temp_path=off;

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend_server;
            proxy_cache my_cache;
            proxy_cache_valid 200 304 5m;
            proxy_cache_valid 301 302 1h;
            proxy_cache_key $host$uri$is_args$args;
            proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
            proxy_cache_background_update on;
            proxy_cache_lock on;
            proxy_cache_lock_timeout 5s;
            proxy_cache_revalidate on;
            proxy_cache_min_uses 3;
            proxy_cache_bypass $http_x_token;
            proxy_cache_methods GET HEAD;
            proxy_ignore_headers Cache-Control Set-Cookie;
        }
    }
}

Im obigen Beispiel haben wir zuerst das Modul ngx_http_proxy_module geladen, dann einen Cache-Bereich mit dem Namen my_cache definiert, einen Proxy-Speicherort im Serverblock konfiguriert und das Caching und die entsprechenden Cache-Steuerungsanweisungen aktiviert . Wenn ein Benutzer auf example.com zugreift, führt Nginx die Cache-Verwaltung und -Steuerung basierend auf den konfigurierten Cache-Regeln durch.

IV. Zusammenfassung
Durch die obige Einführung und die Beispiele erhalten wir ein detailliertes Verständnis dafür, wie Nginx die Cache-Steuerungskonfiguration für HTTP-Anfragen implementiert, sowie eine detaillierte Erklärung und Demonstration der relevanten Anweisungen, die vom Modul „proxy_cache“ bereitgestellt werden. Eine angemessene Cache-Konfiguration kann die Zugriffsgeschwindigkeit und Leistung der Website erheblich verbessern, den Druck auf den Back-End-Server verringern und eine bessere Benutzererfahrung erzielen. Daher ist es bei der tatsächlichen Entwicklung von Webanwendungen sehr wichtig, die Cache-Steuerungsfunktion von Nginx ordnungsgemäß zu verwenden.

Das obige ist der detaillierte Inhalt vonWie Nginx die Cache-Kontrollkonfiguration für HTTP-Anfragen implementiert. 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