Cache
Apache 記憶體服務部分內容 206 響應對完整內容的請求
我們使用 mod_cache 在 Apache 2.2.19 之後執行 Plone 3.3.6。我們最近注意到 Apache 正在記憶體對范圍請求的 206 響應,然後在發出對完整資源的請求時提供該部分響應。
似乎發生了什麼:
- 某些客戶端對尚未在記憶體中或在記憶體中但已過期的資源發出範圍請求
- Apache 正確提供 206 響應
- 另一個客戶提出標準請求相同的資源
- Apache 為第二個客戶端提供相同的 206 響應:它應該為整個響應提供 200
這在某些網站上偶爾會導致我們的 CSS 出現問題
我可以一致地複制這一點:我編寫了一個小 Python 腳本來發出範圍請求。
我認為我們的 Apache 配置並沒有做任何不尋常的事情。我們正在使用反向代理配置來提供來自 Plone 的頁面。與 mod_cache 相關的 Apache 配置如下:
CacheEnable disk / CacheDisable /static CacheDisable /sitemap.xml.gz CacheDisable /robots.txt CacheIgnoreHeaders Set-Cookie UseCanonicalName On RequestHeader edit Accept-Encoding ^.*gzip.*$ gzip early RequestHeader edit Accept-Encoding ^(?!gzip).*$ "" early
Apache 記憶體指南未在狀態程式碼列表中包含 206 個響應,響應“必須具有”它才能被記憶體。這是 Apache 中的錯誤還是我們在配置中做錯了什麼?
這是apache 錯誤 49113,已在主幹中修復,但未在 2.2.19 中修復。
這在 Apache 2.2.23 中已修復。升級到2.2.23就不用打更新檔了