Freebsd
強制 Apache 2.4 使用 mod_cache 記憶體帶有查詢字元串的文件而不過期
我需要獲取 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 代理*(*獲取標頭和記憶體)。