Konfiguration des Nginx-Proxy-Cache-Updates, um in Echtzeit auf Website-Änderungen zu reagieren

WBOY
Freigeben: 2023-07-04 08:54:09
Original
2048 Leute haben es durchsucht

Nginx-Proxy-Cache-Aktualisierungskonfiguration, Echtzeitreaktion auf Website-Änderungen

Zusammenfassung: In diesem Artikel wird erläutert, wie Sie die Nginx-Proxy-Cache-Aktualisierungskonfiguration verwenden, um bei Änderungen des Website-Inhalts eine sofortige Reaktion auf Aktualisierungen zu erzielen und so die Website-Leistung und das Benutzererlebnis zu verbessern. Gleichzeitig stellen wir einige praktische Codebeispiele bereit, um den Lesern zu helfen, diese Funktion besser zu verstehen und anzuwenden.

  1. Einführung
    Nginx ist ein leistungsstarker HTTP- und Reverse-Proxy-Server, der häufig bei der Bereitstellung von Internetanwendungen verwendet wird. Im Proxy-Modus kann Nginx den statischen Inhalt der Website zwischenspeichern, die Belastung des Quellservers reduzieren und den Website-Zugriff beschleunigen. Wenn sich jedoch der Inhalt der Website ändert, aktualisiert die Standardkonfiguration von Nginx den Cache nicht sofort, sodass Benutzer den alten Seiteninhalt sehen. Um dieses Problem zu lösen, können wir durch einige Tricks und Konfigurationen sofortige Aktualisierungen des Nginx-Proxy-Cache erreichen.
  2. Änderung der Konfigurationsdatei
    Zuerst müssen wir die Nginx-Konfigurationsdatei ändern, um sicherzustellen, dass der Cache in Echtzeit aktualisiert werden kann, wenn der Website-Inhalt aktualisiert wird. Wir können dies durch die folgenden Konfigurationselemente erreichen:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m;
proxy_cache_key "$request_method|$host|$request_uri";
proxy_cache_valid 200 301 302 10m;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
Nach dem Login kopieren

Unter diesen gibt proxy_cache_path den Speicherpfad und die Größenbeschränkung der Cache-Datei an; proxy_cache_key definiert den Cache-Schlüsselnamen Stellen Sie sicher, dass der Cache jedes Mal aktualisiert werden kann, wenn sich die angeforderte URL ändert. proxy_cache_valid wird verwendet, um den Cache-Gültigkeitszeitraum der HTTP-Antwortcodes 200, 301 und 302 anzugeben wird auf dem Quellserver angezeigt. Bei einem Fehler dürfen abgelaufene Caches verwendet werden. proxy_cache_path指定了缓存文件的存储路径和大小限制;proxy_cache_key定义了缓存的键名,保证每次请求URL有所变化时能够刷新缓存;proxy_cache_valid用于指定HTTP响应码200、301、302的缓存有效期;proxy_cache_use_stale则是在源服务器出现错误时,允许使用过期的缓存。

  1. 缓存更新规则
    在默认情况下,Nginx只有在缓存过期后才会主动去源服务器请求新的内容。而我们希望能够在网站内容发生变化时,即时更新缓存。为了实现这个目标,可以通过以下的配置项来设置缓存更新规则:
if ( $request_method = POST ) {
    add_header X-Nginx-Cache "BYPASS";
    proxy_cache_bypass $http_cache_control;
    proxy_no_cache 1;
}
Nach dem Login kopieren

上述配置将捕获POST请求,并在响应头中添加X-Nginx-Cache字段,用于标识该请求需要绕过缓存。同时,proxy_cache_bypassproxy_no_cache指令将确保这个请求不会被缓存。

  1. 脚本定时运行
    为了实现缓存的定时更新,我们可以编写一个脚本,通过定时任务的方式来刷新Nginx的缓存。具体的脚本内容如下:
#!/bin/bash

curl -X PURGE http://localhost/page1
curl -X PURGE http://localhost/page2
curl -X PURGE http://localhost/page3
Nach dem Login kopieren

注意到上述脚本中使用了curl

    Cache-Aktualisierungsregeln
      Standardmäßig geht Nginx erst dann aktiv zum Quellserver, um neue Inhalte anzufordern, wenn der Cache abgelaufen ist. Und wir möchten den Cache sofort aktualisieren können, wenn sich der Inhalt der Website ändert. Um dieses Ziel zu erreichen, können Sie Cache-Aktualisierungsregeln über die folgenden Konfigurationselemente festlegen:

    1. rrreee
    2. Die obige Konfiguration erfasst die POST-Anfrage und fügt der Antwort das Feld X-Nginx-Cache hinzu Header für Gibt an, dass die Anfrage das Caching umgehen muss. Gleichzeitig stellen die Anweisungen proxy_cache_bypass und proxy_no_cache sicher, dass diese Anfrage nicht zwischengespeichert wird.
      🎜Skript wird regelmäßig ausgeführt🎜Um regelmäßige Cache-Updates zu implementieren, können wir ein Skript schreiben, um den Cache von Nginx durch geplante Aufgaben zu aktualisieren. Der spezifische Skriptinhalt lautet wie folgt: 🎜🎜rrreee🎜 Beachten Sie, dass der Befehl curl im obigen Skript verwendet wird, um eine PURGE-Anfrage an Nginx zu senden, um den Cache einer bestimmten Seite zu leeren. Wir können dem Skript entsprechend der tatsächlichen Situation die Seiten-URL hinzufügen, die den Cache aktualisieren muss. Verwenden Sie dann ein Tool für geplante Aufgaben (z. B. Cron), um dieses Skript regelmäßig auszuführen, um geplante Aktualisierungen des Caches zu erreichen. 🎜🎜🎜Fazit🎜In diesem Artikel wird erläutert, wie Sie mithilfe der Nginx-Proxy-Cache-Aktualisierungskonfiguration eine sofortige Reaktion erzielen, wenn sich der Website-Inhalt ändert. Wir erreichen diese Funktion, indem wir die Nginx-Konfigurationsdatei ändern, den Cache-Speicherpfad und Aktualisierungsregeln festlegen und ein regelmäßig ausgeführtes Skript schreiben. Die Verwendung dieser Funktion kann die Website-Leistung und das Benutzererlebnis effektiv verbessern und den Druck auf den Quellserver durch Benutzeranfragen verringern. Ich hoffe, dass die Leser durch die Einführung und den Beispielcode dieses Artikels die Proxy-Cache-Update-Konfiguration von Nginx besser verstehen und anwenden können. 🎜🎜

Das obige ist der detaillierte Inhalt vonKonfiguration des Nginx-Proxy-Cache-Updates, um in Echtzeit auf Website-Änderungen zu reagieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!