
EntsprechendNginx-DokumentationAnproxy_cache_bypass
Definiert Bedingungen, unter denen die Antwort nicht aus einem Cache entnommen wird. Wenn mindestens ein Wert der String-Parameter nicht leer und ungleich „0“ ist, wird die Antwort nicht aus dem Cache entnommen:
Ich möchte, dass die Anfrage mit dem Header Cache-Control: no-cache
den Nginx-Cache umgeht und an den Upstream-Dienst weitergeleitet wird. Soll ich die folgende Konfiguration verwenden?
proxy_cache_bypass $http_cache_control;
Ich habe gefragt, weil es so aussieht, als würde Nginx den Cache umgehen, wenn der Cache-Control
Wert ungleich Null ist, ohne zu prüfen, ob sein Inhalt ist no-cache
. Wenn nicht, was wäre der beste Weg, um mein Ziel zu erreichen?
Antwort1
Sie haben Recht. Sie sollten ein verwenden, map
umWählen Sie den richtigen Wertum den Cache zu steuern.
Zum Beispiel:
map $http_cache_control $cache_bypass {
no-cache 1;
}
proxy_cache_bypass $cache_bypass;
Beachten Sie, dass der map
Block außerhalb des server
Blocks platziert werden muss.