分類
系統技術

apache加掛壓縮模組deflate/gzip

在阿駕零零壹站上看到這篇: [Apache] 壓縮你的網頁 – mod_deflate/mod_gzip、ob_gzhandler、zlib, 覺得效果不錯, 試著進行調整自己的主機, 加入這項功能.

由於 apache2 有自帶 mod_deflate 模組, 所以設定起來很快也很方便, 只要設定一下 httpd.conf:

LoadModule deflate_module modules/mod_deflate.so

將 # 拿到, 並加上

<IfModule mod_deflate.c>
  DeflateCompressionLevel 6
  AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
  AddOutputFilter DEFLATE html htm xml php css js
</IfModule>

並重啟一下服務即可順利完成.

但由於本站使用的是 apache 1.3x, 所以要麻煩一點, 配合的模組是 mod_gzip, 這個版本已經很久了, 可以先到 http://sourceforge.net/projects/mod-gzip/ 這裡進行下載.

若是 windows 下使用 dll 那組, linux/bsd則用 so 那組, 將檔案複製到 apache/modules 下, 設置 httpd.conf 檔案:

windows:
LoadModule gzip_module modules/ApacheModuleGzip.dll
linux/bsd:
LoadModule gzip_module modules/mod_gzip.so
再加入一行:
AddModule mod_gzip.c

另外新增參數:

<IfModule mod_gzip.c>
  mod_gzip_on yes
  mod_gzip_min_http 1001
  mod_gzip_minimum_file_size 300
  mod_gzip_maximum_file_size 0
  mod_gzip_maximum_inmem_size 100000
  mod_gzip_keep_workfiles no
  mod_gzip_temp_dir /tmp #這裡要先建好目錄
  mod_gzip_item_include file \.html$
  mod_gzip_item_include file \.htm$
  mod_gzip_item_include file \.xml$
  #mod_gzip_item_include file \.php$
  mod_gzip_item_include file \.css$
  mod_gzip_item_include file \.js$
</IfModule>

測試方式, 可以至:
http://www.port80software.com/products/httpzip/compresscheck
輸入要測試的網址即可.

不過目前 php 的檔案還是未能壓縮 (apache / mod_gzip), 其他格式如 css 或 html 都很正常, 不知原因為何, 另一台用 apache2 / mod_deflate 的 php 是可以順利壓縮的, 原因還要再找看看, 麻煩有經驗的朋友再提供一下資訊囉!

[2007/6/10 3:04]
後來暫時使用了 php.ini 中的 output_handler = ob_gzhandler 設置, 並且將 mod_gzip 中的 php 先 # 掉, 讓 mod_gzip 處理其他檔案, php 則由 ob_gzhandler 處理!!

參考資料:
http://www.schroepl.net/projekte/mod_gzip

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。