apache啟用mod_deflate的GZIP壓縮網頁傳輸方法

來源:互聯網
上載者:User

gzip原本是檔案壓縮格式,副檔名為.gz,HTTP協議用它來改進WEB應用程式效能,加快HTTP請求返回內容的下載速度,增加使用者體驗,降低網路頻寬佔用
apache內建有mod_deflate模組來啟用gzip功能,但假如安裝apache的時候沒有編譯相關模組,就需要你手動安裝一次,以啟用它:
首先到你的apache源碼目錄,尋找到mod_deflate.c檔案
Mac及Linux下都可用locate mod_deflate.c
通常位置:apachehttpd源碼目錄/modules/filters/mod_deflate.c
進入上面找到的目錄運行下面的命令:
/usr/local/apache/bin/apxs -i -c -a mod_deflate.c
註:apxs目錄請參照您自己的機器,通常在apache安裝目錄的bin目錄下
安裝完成,到apache的modules目錄看看是不是有了mod_deflates.so,如果有了這個檔案,請編輯apache安裝目錄的conf/httpd.conf設定檔:
LoadModule deflate_module modules/mod_deflate.so
載入mod_deflate.so模組
在httpd.conf裡面的網站配置裡增加如下內容:
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
第一行代表對什麼樣的內容啟用GZIP壓縮,第二行代表壓縮層級,第三行代表啟用deflate模組對本網站的輸出進行GZIP壓縮(就是對所有輸出啟用壓縮)
OK,完成拉,重啟apache httpd後可以尋找一些gzip檢測網站進行一下效果,通常壓縮率都超過%50,可以有效增加訪問速度及網站頻寬利用率,Good Luck!
可能碰到的問題:
問題:apache啟動後問題,日誌裡出現mod_deflate.so:undefined symbol:inflateEnd
解決:在LoadModule deflate_module modules/mod_deflate.so之前增加LoadFile /usr/local/lib/libz.so或LoadFile /usr/lib/libz.so
註:具體libz.so位置自己找一下

 

mod_deflate是Apache2中的標準過濾器模組,該模組的功能與mod_gzip的功能一樣:壓縮網頁各類組件,加快網頁下載速度。

通常Apache2中增加增加模組都不需要重新編譯Apache,只需要動態添加需要的模組就OK了。首先在Apache源安裝資料夾的modules檔案夾中尋找到mod_deflate.c檔案……

在Apache2.2.2中,mod_deflate模組在modules/filters檔案夾中,確定位置後:

 代碼如下 複製代碼

[root@localhost modules]# cd /apache-source-install-path/modules/filters

[root@localhost filters]# /apache-installed-path/bin/apxs -i -a -c mod_deflate.c

如果安裝成功,則會提示:

chmod 755 /apache-installed-path/modules/mod_deflate.so
[activating module `deflate' in /apache-installed-path/conf/httpd.conf]

此時,開啟/apache-installed-path/conf/httpd.conf檔案,搜尋“mod_deflate”,因該可以看到該模組已經載入上了,如下:

LoadModule deflate_module     modules/mod_deflate.so

既然模組載入上了,那麼就可以對需要的內容進行壓縮設定了。apache官方有詳細的mod_deflate配置說明,以下是我對測試網站做的mod_deflate配置:

 代碼如下 複製代碼

<IfModule mod_deflate.c>
DeflateCompressionLevel 9   #壓縮的層級設定為最高

#將html、文本、xml、php進行壓縮
AddOutputFilterByType   DEFLATE text/html text/plain text/xml application/x-httpd-php

# 將html、htm、xml、php、css、js進行壓縮
AddOutputFilter         DEFLATE  html  htm  xml  php  css  js
</IfModule>

apache2增加mod_deflate壓縮模組這樣就OK了。當然啦,對httpd.conf做了以上修改,應該儲存檔案並且重啟apache服務。這個時候再通過一些http觀察軟體查看頁面到底有沒有進行壓縮。以下是我對西北大學測試網站啟用mod_deflate進行壓縮後的效果截圖:


mod_deflate壓縮結果

通過實驗證明,啟用Apache的mod_deflate模組進行網頁內容壓縮,能夠平均將網頁大小降到原來的60%左右。尤其是對非圖片、非多媒體為主的網站效果更加明顯

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.