GZip壓縮,是一種網(wǎng)站速度優(yōu)化技術(shù),也是一把SEO優(yōu)化利器,許多網(wǎng)站都采用了這種技術(shù),以達(dá)到提升網(wǎng)頁(yè)打開速度、縮短網(wǎng)頁(yè)打開時(shí)間的目的。
本文是一篇研究性文章,將通過(guò)某個(gè)案例來(lái)給大家顯示網(wǎng)站采用GZip壓縮前后的對(duì)比效果。
這里將要研究的對(duì)象是園子的博客http://www.yzznl.cn/,該博客已經(jīng)采用了GZip壓縮技術(shù)。你可以通過(guò)這里進(jìn)行GZip壓縮檢測(cè)。
下面將要進(jìn)行的實(shí)驗(yàn)是該網(wǎng)站在采用與不采用GZip壓縮的情況下網(wǎng)頁(yè)打開的速度和時(shí)間的比較。
選擇的測(cè)試工具是webkaka網(wǎng)站測(cè)速工具,webkaka的老用戶請(qǐng)注意了,webkaka網(wǎng)站測(cè)速已經(jīng)新增了網(wǎng)站是否啟用GZip壓縮的判斷。可以使用Gzip壓縮打開網(wǎng)頁(yè)和不使用Gzip壓縮打開網(wǎng)頁(yè)兩種方式進(jìn)行測(cè)試網(wǎng)頁(yè)打開速度。
一、不使用Gzip壓縮打開網(wǎng)頁(yè)
首先要測(cè)試的是不通過(guò)Gzip壓縮的情況下,直接打開網(wǎng)頁(yè)。測(cè)速地址:http://www.howtostagehomes.com/webCheck_v3.aspx
如下是測(cè)試結(jié)果
從上圖可以看到,網(wǎng)頁(yè)大小是50275字節(jié),沒(méi)有經(jīng)過(guò)Gzip壓縮,平均打開時(shí)間是5.128秒,而滿意度得分僅得59分(什么是滿意度得分?)。
二、使用Gzip壓縮打開網(wǎng)頁(yè)
現(xiàn)在測(cè)試的是在使用Gzip壓縮的情況下,打開網(wǎng)頁(yè)。測(cè)速地址:http://www.howtostagehomes.com/webCheck.aspx
如下是測(cè)試結(jié)果
從上圖可以看到,網(wǎng)頁(yè)大小是12187字節(jié),是已經(jīng)經(jīng)過(guò)Gzip壓縮后的體積。平均打開時(shí)間是1.820秒,打開時(shí)間比沒(méi)有使用Gzip時(shí)縮短了2/3。而滿意度得分達(dá)到了91分之高。
總結(jié)
通過(guò)上面兩組數(shù)據(jù)的對(duì)比,Gzip壓縮優(yōu)化的效果是十分明顯的。也正因?yàn)橛行Ч?,所以大部分網(wǎng)站都使用了該項(xiàng)技術(shù)進(jìn)行速度優(yōu)化。如果你的網(wǎng)站速度不夠理想,而你還未采用這種優(yōu)化技術(shù)的話,那么,趕快行動(dòng)吧,使用Gzip壓縮會(huì)讓你的網(wǎng)站速度提升3倍以上!
實(shí)際上,網(wǎng)站采用Gzip壓縮,還有一個(gè)好處,就是讓你少了一份流量超標(biāo)的擔(dān)心。因?yàn)镚zip開啟以后會(huì)將輸出到用戶瀏覽器的數(shù)據(jù)進(jìn)行壓縮的處理,這樣就會(huì)減小通過(guò)網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量,而這個(gè),也正是提升網(wǎng)頁(yè)打開時(shí)間的原因所在。
相關(guān)知識(shí)
首先,如果你需要壓縮靜態(tài)文件(HTML),需要在硬盤上建一個(gè)目錄,并給它“IUSR_機(jī)器名”這個(gè)用戶的寫權(quán)限。如果壓縮動(dòng)態(tài)文件(PHP,asp,aspx)就不需要了,因?yàn)樗捻?yè)面是每次都動(dòng)態(tài)生成的,壓縮完就放棄。
然后在IIS管理器中,“網(wǎng)站”上面右鍵-屬性,不是下面的某個(gè)站點(diǎn),而是整個(gè)網(wǎng)站。進(jìn)入“服務(wù)”標(biāo)簽,選上啟用動(dòng)態(tài)內(nèi)容壓縮,靜態(tài)內(nèi)容壓縮。然后選中網(wǎng)站下面那個(gè)服務(wù)器擴(kuò)展,新建一個(gè)服務(wù)器擴(kuò)展。名字無(wú)所謂,下面的添加文件的路徑是: c:\windows\system32\inetsrv\gzip.dll,然后啟用這個(gè)擴(kuò)展。
這時(shí)候靜態(tài)內(nèi)容是可以壓縮的,但是對(duì)于動(dòng)態(tài)內(nèi)容,aspx文件卻不在壓縮范圍內(nèi)。因?yàn)槟J(rèn)的可壓縮文件并沒(méi)有這個(gè)擴(kuò)展名。而管理界面中你又找不到可以增加擴(kuò)展名的地方,這時(shí)候只能去修改它的配置文件了。在c:\windows\system32\inetsrv\下面有個(gè)MetaBase.xml文件,可以用記事本打開,找到IIsCompressionScheme,有三個(gè)相同名字的段,分別是deflate,gzip,Parameters,第三段不用管它,前兩段有基本相同的參數(shù),在這兩段的參數(shù)HcScriptFileExtensions下面都加上一行aspx,如果你有其它的動(dòng)態(tài)程序要壓縮,也加在這里。HcDynamicCompressionLevel改成9,(0-10,9是性價(jià)比最高的一個(gè))。
最后需要注意的是,不要忘了重啟一下IIS服務(wù)。
默認(rèn)情況下,Nginx的gzip壓縮是關(guān)閉的,也只對(duì)只對(duì)text/html進(jìn)行壓縮,需要在編輯nginx.conf文件,在http段加入一下配置,常用配置片段如下:
gzip on;
gzip_comp_level 6; # 壓縮比例,比例越大,壓縮時(shí)間越長(zhǎng)。默認(rèn)是1
gzip_types text/xml text/plain text/css application/javascript application/x-javascript application/rss+xml; # 哪些文件可以被壓縮
gzip_disable "MSIE [1-6]\."; # IE6無(wú)效
apache2官方在開發(fā)的時(shí)候,就已經(jīng)把網(wǎng)頁(yè)壓縮考慮進(jìn)去,內(nèi)建了mod_deflate模塊,所以apache2就不需要使用到mod_gzip了,這兩者的工作原理是類似的, 還有啟用mod_deflate這個(gè)網(wǎng)頁(yè)壓縮的模塊,功能和效率和mod_gzip是差不多的,甚至還好一些,就不需要再用mod_gzip模塊了。
配置文件實(shí)例:
<ifmodule mod_deflate.c>
DeflateCompressionLevel 9
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
AddOutputFilter DEFLATE js css
</ifmodule>
配置gzip主要是使用compress模塊
1. 激活compress模塊,將lightppd.conf文件的mod_compress的注釋去掉
2. 配置壓縮文件存放目錄compress.cache-dir,注意運(yùn)行l(wèi)ighttpd的用戶需要有這個(gè)目錄的讀寫權(quán)限,壓縮文件的類型compress.filetype
3. 將動(dòng)態(tài)生成的php也gzip,修改php.ini,加上zlib.output_compression = On和zlib.output_handler = On
4. 重啟lighttpd
配置文件實(shí)例:
compress.cache-dir = "/home/flymouse/lighttpd/compress/"
compress.filetype = ("text/plain", "text/html", "application/x-javascript", "text/css", "application/javascript", "text/javascript")