Cache

魷魚記憶體問題

  • September 28, 2016

我想創建一個 cron 作業來刪除我們的 squid 記憶體並重新啟動它。我這樣做的原因是,當我將一個新的建構 JavaScript 程式碼上傳到我們的網路伺服器時,當我在指向我們 squid 的瀏覽器中瀏覽我們的應用程序時,即使我已經清除了瀏覽器的記憶體,我仍然會得到舊程式碼。

在我清除 squid 的記憶體並重新啟動它後,它開始工作。

我真的需要一份工作來做到這一點,還是我只是在我們的 squid 中缺少配置?當然,我們仍然需要記憶體,但不是在上傳新的 Web 應用程序建構時。

檢查您的 squid.conf 以確保沒有 refresh_pattern 行告訴 Squid 不遵守/忽略 HTTP 記憶體指令。這應該是你需要做的所有事情。預設情況下,Squid 會在需要時進行重新驗證(REFRESH/IMS)檢查,其餘的由源伺服器決定。

確保您的伺服器在每個響應上生成 Last-Modified 和 ETag 標頭(如果可能)。早於 3.5.21 的 Squid 需要重新驗證。

如果您的更改是在已知的定期間隔 Cache-Control:max-age=N 並且應該發出 Expires 標頭,告訴 Squid 下一次更改何時發生。否則,如果時間不可預測,則應發出 Cache-Control:no-cache 標頭。

您還需要確保您的伺服器在內容未更改時正確生成 304 響應。如果沒有,請查看您的伺服器文件以了解如何解決該問題。

引用自:https://serverfault.com/questions/789638