• Apache 啟用壓縮 mod_gzip mod_deflate 節省頻寬

    by  • 2009/06/27 • 系統相關 • 7 Comments

    apache 1.3 2.2 都有 module 可以啟用壓縮, 透過壓縮的方式可以將要傳輸的檔案

    壓縮到將近 50% , 這樣就可以把頻寬節省下來, 用到更有用的地方, 不過壓縮也

    不是什麼都可以壓縮, 像影像檔因為檔案都較大耗時耗 Server 資源外, 本身也有

    一些壓縮的技術在, 再壓縮也壓不了多少, jpg 圖檔也是一樣 !!

    以下簡單介紹 Mod_Gzip 跟 mod_deflate 兩種方式 !!

    1. mod_gzip 通常用在 apache 1.3, 在 httpd.conf 先確認是否有 loading mod_zip

    之後再加上以下指令,

    <IfModule mod_gzip.c>
    mod_gzip_on yes
    mod_gzip_min_http 1001
    mod_gzip_minimum_file_size 1
    mod_gzip_maximum_file_size 0
    mod_gzip_maximum_inmem_size 100000
    mod_gzip_keep_workfiles no
    mod_gzip_temp_dir D:/tmp
    mod_gzip_item_include file \.html$
    mod_gzip_item_include file \.htm$
    mod_gzip_item_include file \.xml$
    mod_gzip_item_include file \.css$
    mod_gzip_item_include file \.js$
    </IfModule>
    

    那因為 php 的設定是修改 php.ini 如下

    output_handler = ob_gzhandler
    

    這樣重新啟動 apache 就可以囉 !!

    2. Apache 2.2 通常就內建有 mod_deflate, 不過沒啟用, 在 httpd.conf 加上以下指令

    <ifmodule mod_deflate.c>
    DeflateCompressionLevel 6 #表示壓縮率, 6是建議值
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/atom_xml
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE application/x-httpd-php
    AddOutputFilterByType DEFLATE application/x-httpd-fastphp
    AddOutputFilterByType DEFLATE application/x-httpd-eruby
    AddOutputFilterByType DEFLATE image/svg+xml
    AddOutputFilterByType DEFLATE application/postscript
    AddOutputFilter DEFLATE js css
    </ifmodule>
    

    之後重新啟動 apache 就可以囉 !!

    當然, 有圖才有真相囉 !! 附上測試網頁的畫面 !! 同樣的網站壓縮率達 40% ~ 41% ~~

    效果不錯呢 ~~

    測試網站1

    gzip1.jpg

    測試網站2

    gzip2.jpg