Compression

即使我在 php.ini 中使用 zlib,內容也沒有被壓縮

  • September 22, 2012

我編輯了我的 php.ini 文件,使其具有以下兩個條目:

zlib.output_compression = On
zlib.output_compression_level = 4

但是,重新啟動 apache 後,當我請求 php 頁面時,響應中返回的標頭表明我的伺服器仍未提供壓縮頁面(這裡是使用 Chrome 的網路功能查看的選定標頭):

Cache-Control:no-cache, must-revalidate, max-age=0
Connection:Keep-Alive
Content-Type:text/html; charset=UTF-8
Date:Mon, 17 Sep 2012 23:46:13 GMT
Expires:Wed, 11 Jan 1984 05:00:00 GMT
Last-Modified:Mon, 17 Sep 2012 23:46:13 GMT
Pragma:no-cache
Proxy-Connection:Keep-Alive
Server:Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.17
Transfer-Encoding:chunked
Via:1.1 XXX-PRXY-07
X-Powered-By:PHP/5.2.17

我可能做錯了什麼?我還需要更改其他設置嗎?

編輯

這是返回到另一台電腦的另一組標頭:

Cache-Control:no-cache, must-revalidate, max-age=0
Connection:close
Content-Type:text/html; charset=UTF-8
Date:Thu, 20 Sep 2012 09:45:26 GMT
Expires:Wed, 11 Jan 1984 05:00:00 GMT
Last-Modified:Thu, 20 Sep 2012 09:45:26 GMT
Pragma:no-cache
Server:Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.17
Transfer-Encoding:chunked
Vary:Cookie
X-Powered-By:PHP/5.2.17

看起來流量正在被代理。驗證代理可以處理壓縮流量並且由於某種原因沒有對其進行解壓縮。

如果客戶端(在這種情況下是代理,但在許多情況下是最終使用者的瀏覽器)不支持使用中的壓縮,則不會壓縮流量。

我還注意到 mod_zlib 或 mod_deflate 似乎都沒有載入。您可能需要檢查模組是否正常工作和配置(您可能必須向 apache 啟動添加定義選項,或啟用配置文件)。

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