
根據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
塊的外部。