Freebsd

強制 Apache 2.4 使用 mod_cache 記憶體帶有查詢字元串的文件而不過期

  • June 10, 2016

我需要獲取 mod_cache_disk 來記憶體包含查詢字元串的站點。問題是它是我們試圖通過 mod_proxy 記憶體的 IIS 上的供應商產品,它不包含過期標頭。我意識到這個問題違反了幾個 RFC,這就是為什麼 apache 預設不這樣做。

有沒有辦法強制 apache 2.4.x 使用查詢字元串記憶體並且沒有過期標頭?

此配置將記憶體,但當然不尊重 ? 它為大多數項目記憶體了錯誤的內容。

CacheEnable disk https://
CacheEnable disk /
CacheRoot /var/cache/mod_proxy/
CacheDirLevels 4
CacheDirLength 5
CacheIgnoreCacheControl On
CacheIgnoreNoLastMod On
CacheIgnoreHeaders None
CacheMaxFileSize 100000000
CacheMinFileSize 1
CacheMaxExpire 1209600
CacheDefaultExpire 3600
CacheIgnoreQueryString On
CacheStoreNoStore On
CacheStorePrivate On

如果我將 CacheIgnoreQueryString 更改為 Off,它將開始發出有關 expires 標頭的錯誤。

AH00768:記憶體:/view.image?Id=1114 未記憶體。原因:查詢字元串存在但沒有明確的過期時間,

根據這個答案,唯一的方法是讓 Apache 看到它想要的標題(你所說的過期,並且顯然還有 Last-Modified)。

該答案的發布者建議在應用程序端編寫一個過濾器,但由於您的產品是供應商產品,這可能是不可能的。是否有機會直接在 IIS 中添加它?否則,您可能會遇到雙重代理設置:使用一個代理添加標頭(但不記憶體),並從 Apache 代理*(*獲取標頭和記憶體)。

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