Yblog = yourblog,你的優質部落格。願真田幸村紅鎧策馬赤備突擊的身影,帶給我們更多的勇氣。
星期四, 十一月 10, 2005
啟用Apache2 的mod_deflate(gzip)來壓縮網頁提高傳輸效能
今天為了讓Apache 2能夠啟用網頁壓縮,本來是找有經驗的朋友幫忙看用mod_gzip來壓縮會不會比較好,畢竟gzip壓縮網頁輸出是很多人都在採用的技術。

後來翻Apache 2 Module mod_deflate 資料才發現,原來很多人用mod_gzip其實是因為Apache 1.x系列沒有內建網頁壓縮技術,所以才去用的。Apache 2官方在開發的時候,就把網頁壓縮考慮進去,內建了mod_deflate這個模組,所以Apache 2就不需要使用到mod_gzip,但2者運作的原理頗為類似。

啟用mod_deflate這個網頁壓縮的模組,功能和效率和mod_gzip是差不多的,甚至還好一些,且不需要再另外找mod_gzip模組,apache 2就有內建,將模組前面的註解拿掉就可以使用。

yblog.org啟用後,所消耗的頻寬流量便下降許多,可以同時提供給更多人瀏覽頁面的頻寬資源,考量本站使用的文件格式後,實作的方法如下:
在http.conf檔案裡有關載入模組的地方,加上這一行:
LoadModule deflate_module modules/mod_deflate.so
接著,在http.conf檔案後面,加上這一段:
<ifmodule mod_deflate.c>
DeflateCompressionLevel 9
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
AddOutputFilter DEFLATE js css
</ifmodule>
這樣的作法可以壓縮一般網頁中會用到的html、xml、php、css、js等格式檔案輸出,雖然會佔用掉伺服器處理器的一點點處理器時間,瀏覽者在接收網頁資料時也會消耗極短暫的一點點處理器時間(短到使用者不可能察覺),不過卻可以大幅減少資料傳輸量,減少網路頻寬被吃掉的情形。

DeflateCompressionLevel 9是指壓縮程度的等級,從1到9,9是最高等級。據了解,這樣做最高可以減少8成大小的傳輸量(看檔案內容而定),最少也能夠節省一半。

DeflateCompressionLevel 預設可以採用 6 這個數值,以維持耗用處理器效能與網頁壓縮品質的平衡。

至於已經是壓縮過的圖片格式如jpg,音樂檔案如mp3、壓縮檔如zip之類的,就可以不需要再壓縮了,因為這種檔案你一開放伺服器傳輸時壓縮,處理器時間會跑不完。

有關這個mod_deflate的效能,這篇文章Apache 2 mod_deflate Benchmark分析得很好,也值得參考。

要檢查加上模組的成果,可以馬上透過這個網站來看看壓縮效率如何Real-Time Compression Check(已經失聯),我們來改用這個網站Check HTTP Compression來檢查。

以優格網首頁為例,25445 bytes變成7828 bytes,壓縮後的比例約省下了70%。而以永遠的真田幸村為例,首頁從69045 bytes變成18001 bytes,節省了74%,傳輸速度快了的3.8倍,不過處理速度沒有變慢。

至於Lighttpd這套也很紅的網頁伺服器軟體平台,也支援mod_deflate來壓縮網頁提高傳輸效能。

而微軟Window伺服器的IIS平台,IIS5得搭配外掛的模組才能實現壓縮功能,IIS6、IIS7則有內建,但壓縮的效能都沒有Apache系列好就是了。XD
More... funp HemiDemi MyShare del.icio.us technorati Google Bookmarks Digg
ivan 發表於 5:00 PM | 文章分類: 數位科技, www, 站務相關 | 標籤列表: ,

迴響留言
根據官方的測試數據,200KB 的網頁依據不同 gzip 等級的壓縮比例為

Gzip level 1 0.593
Gzip level 6 (預設) 0.586
Gzip level 9 0.585

由此可知,大於 1 以後的壓縮效益是很低的,且會消耗伺服器資源
因此他們強烈建議設定成 1,gzip 預設是 6
建議用 1 就好,用 9 對伺服器負載會重,人少沒感覺,人一多就會伺服器負載就重多了
我想mod_deflate 也差不多

由 maxmas 發表於 11:35, Dec 19, 2006
220.130.142.* | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
用越多壓縮越多,不過這樣太高確實會造成伺服器負擔過高,看不同網站主機的情形會有差異。

我自己之前的主機影響並不大,但新用的主機自己測試過會差一點點,如果瀏覽量很大的話會受到影響比較高。

ivan 發表於 1:25, Jan 2, 2007
208.97.143.* | ivanusto at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
開啟 apache2 的 mod_deflate 來幫忙壓縮網頁提高傳輸效能 但有些js出問題了...

under firefox 2.0 --->
Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [ nsIXMLHttpRequest.open]
愛上生活網 發表於 18:32, Oct 21, 2008
218.20.63.* | i-club at live dot cn | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
這時候你的java script 需要改寫一下才行

壓縮畢竟還是會影響到一些code
ivan 發表於 0:11, Oct 26, 2008
208.97.143.* | ivanusto at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字

張貼迴響:
名稱
電子郵件
網址



請輸入你在圖片中看到的文字
引用列表
本篇文章引用網址: http://yblog.org/api/trackback/?id=5318
» 綠色工廠 Easylife Blog: Apache。mod_deflate。壓縮網頁。增進傳輸效能
先請大家原諒我的愚蠢與無知,再看接下來的文章。這幾天都有一直都有個想法,要把工廠的風格改回之前的風格,也就是大家目前看到的樣式(請Ctrl+F5 強制整理把css更新)。在新舊風格比較之下,舊風格有舊風格的好,新風格也... [詳全文...]
被引用於23:30, Aug 6, 2007
» 毓林園地 ::PIXNET BLOG::: [ubuntu]啟動 Apache2 的 mod_deflate 來壓縮網頁提高傳輸效能
在 Ubuntu 下如何開啟 apache2 的 mod_deflate 來幫忙壓縮網頁提高傳輸效能呢? 很簡單哦!只要下一段指令就 OK... 啟動:sudo a2enmod deflate重新載入:sudo /etc/init.d/apache2 force-reload確認是否啟用:請... [詳全文...]
被引用於16:05, Apr 9, 2008
» 工作達人(Job Da Ren): 提昇網站效能
今天在使用Google的網站管理員工具有一個Google研究室,裡頭有一個”網站效能”這個分析,點進去看ㄚ琪琪的家跟工作達人這兩個web所在的網站伺服器是最近剛買的Dell入門級伺服器,它分析 [詳全文...]
被引用於17:39, Jan 5, 2010










Collablog Portal enabled