Apache-2.2

如何判斷 mod_deflate 是否真的有效?

  • August 16, 2018

我在我的 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 進行驗證。

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