了解 proxy_cache_bypass $http_cache_control

了解 proxy_cache_bypass $http_cache_control

根據Nginx 的文檔proxy_cache_bypass

定義不會從快取中取得回應的條件。如果字串參數中至少有一個值不為空且不等於“0”,則不會從快取中取得回應:

我希望帶有標頭的請求Cache-Control: no-cache繞過 Nginx 快取並轉發到上游服務。我應該使用以下配置嗎?

proxy_cache_bypass $http_cache_control;

Cache-Control我之所以這麼問,是因為只要具有非零值,Nginx 就會繞過緩存,而不檢查其內容是否為no-cache。如果沒有,實現我的目標的最佳方法是什麼?

答案1

你是對的。你應該使用一個map選擇正確的值來控制緩存。

例如:

map $http_cache_control $cache_bypass {
    no-cache   1;
}

proxy_cache_bypass $cache_bypass;

請注意,該map塊必須放置在該server塊的外部。

相關內容