簡體   English   中英

使Nginx緩存尊重緩存控制標頭

[英]Make Nginx caching respect cache-control headers

Nginx可以緩存內容,即充當反向代理,但是清除時間必須在Nginx配置中固定。

有沒有一種方法可以根據上游應用程序服務器中的緩存控制標頭自動清除Nginx?

在研究了這個問題之后,我發現它沒有被很好地記錄下來,因為大多數人似乎都在關注CMS,因為它很容易說“一天緩存文章”,但是對於動態應用程序服務器卻很少,后者可能會根據每個請求而有所不同。

有幾種選擇:

  • Nginx Plus
  • Ngx緩存清除模塊 ,盡管兩年來沒有任何更新
  • 定義多個具有不同到期時間的緩存,並在可能的情況下按路徑不同地應用它們。
  • 忘記在Nginx上緩存,並在其前面放置一個類似Varnish的服務器。

更新:進一步看,我現在認為甚至不需要存在proxy_cache_valid。 如果沒有來自上游的緩存控制/過期,它只會設置默認過期。 如果沒有proxy_cache_valid,Nginx仍將內容視為過時的,但不會立即清除。 它將過時的內容保留在緩存中的原因(由“非活動”參數以及可選的proxy_cache_valid確定)是因為它可以使用proxy_cache_use_stale服務過時的內容(如果上游有錯誤,則很有用)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM