Apache-2.2
如何判斷 mod_deflate 是否真的有效?
我在我的 http.conf 文件中添加了以下內容:
# mod_deflate configuration <IfModule mod_deflate.c> # Restrict compression to these MIME types AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/css # Level of compression (Highest 9 - Lowest 1) DeflateCompressionLevel 9 # Netscape 4.x has some problems. BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 have some more problems BrowserMatch ^Mozilla/4\.0[678] no-gzip # MSIE masquerades as Netscape, but it is fine BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html <IfModule mod_headers.c> # Make sure proxies don't deliver the wrong content Header append Vary User-Agent env=!dont-vary </IfModule> </IfModule>
我的內容沒有返回 gzip 類型的 Content-Encoding,但我發現自己得到了更多的 304,並且 Etag 附加了 +gzip 後綴。mod_deflate 真的在做它的工作嗎?(對不起n00b-ishness)
標題告訴您什麼,如果它沒有返回“內容編碼:gzip”,它可能無法正常工作..您可以進行如下測試:
curl -I -H 'Accept-Encoding: gzip,deflate' http://yoursite.com/somefile
AddOutputFilterByType的 apache 文件表明該指令在 Apache httpd 2.1 及更高版本中已棄用,如果 Apache 無法確定 mime 類型,它並不總是能正常工作。
我建議使用以下內容作為起點來啟用壓縮,然後重新添加所有瀏覽器調整和壓縮級別。顯然,您可能需要仔細檢查 httpd.conf 以確保它實際上也在載入 mod_deflate.so :
<Location /> SetOutputFilter DEFLATE # Don't compress images SetEnvIfNoCase Request_URI \.(?:gif|png|jpg|jpeg)$ no-gzip dont-vary Header append Vary User-Agent env=!dont-vary </Location>
使用 Michael Steinfeld 提到的 cURL 進行驗證。