在早期的apache 1.x系列版本中沒有內(nèi)建網(wǎng)頁壓縮技術(shù),所以才需要去gzip壓縮。官方在開發(fā)apache2的時候,已經(jīng)考慮到網(wǎng)頁壓縮考慮并內(nèi)建了 mod_deflate模塊,所以apache2就不需要使用到mod_gzip了。這兩者的工作原理是類似的,還有啟用mod_deflate這個網(wǎng)頁壓縮的模塊,功能和效率和mod_gzip是差不多甚至還好一些,所以就不需要再用mod_gzip模塊了。
1、首先得確認(rèn)apache是否已經(jīng)加載了mod_deflate模塊。
#httpd -M在結(jié)果中查看是否有 deflate_module (shared) 這樣的一行字段,如果有說模塊己加成功。如果沒有需先安裝加載mod_deflate模塊。
2、編輯配置文件httpd.conf,增加支持gzip的文件類型,如下:
<IfModule mod_deflate.c>DeflateCompressionLevel 9
AddOutputFilterByType DEFLATE text/html text/xml application/x-httpd-php
AddOutputFilter DEFLATE js css
</IfModule>
這樣可以壓縮一般網(wǎng)頁中會用到的html、xml、php、css、js等格式檔案輸出,雖然會占用掉服務(wù)器處理器的一點(diǎn)點(diǎn)處理器時間,瀏覽者在接收網(wǎng)頁數(shù)據(jù)時也會消耗極短暫的一點(diǎn)點(diǎn)處理器時間,不過卻可以大幅減少數(shù)據(jù)傳輸量,減少網(wǎng)絡(luò)帶寬被吃掉的情形。
DeflateCompressionLevel 9是指壓縮程度的等級,從1到9,9是最高等級。據(jù)了解,這樣做最高可以減少8成大小的傳輸量(看檔案內(nèi)容而定),最少也能夠節(jié)省一半。
DeflateCompressionLevel 預(yù)設(shè)可以采用 6 這個數(shù)值,以維持耗用處理器效能與網(wǎng)頁壓縮質(zhì)量的平衡。
補(bǔ)充
至于已經(jīng)是壓縮過的圖片格式如jpg,音樂檔案如mp3、壓縮文件如zip之類的,就沒必要再壓縮了,因?yàn)檫@種檔案你一開放服務(wù)器傳輸時壓縮,處理器時間會跑不完,而且就算跑完大小也一樣。如果使用PHP函數(shù)之類壓縮過的文件,httpd服務(wù)是不會再次壓縮的。系統(tǒng)級別的處理,總會比應(yīng)用級別的效率高吧。
Apache 的 mod_deflate 和 gzip compression 的對比.
* 不使用任何壓縮: 430KB
* 僅使用 gzip: 323KB
* 僅使用 Apache 的 deflate 模塊: 247KB
* 同時使用 deflate 以及 gzip: 247KB
完成后保存退出
3、重啟Apache
#service httpd restart4、至此網(wǎng)頁壓縮模塊已經(jīng)安裝完成,檢驗(yàn)是否正確啟用gzip功能吧。