現(xiàn)代的瀏覽器IE6和Firefox都支持客戶端Gzip,也就是說,在服務(wù)器上的網(wǎng)頁,傳輸之前,先使用Gzip壓縮再傳輸給客戶端,客戶端接收之后由瀏覽器解壓顯示,這樣雖然稍微占用了一些服務(wù)器和客戶端的 CPU,但是換來的是更高的帶寬利用率。對于純文本來講,壓縮率是相當(dāng)可觀的。如果每個(gè)用戶節(jié)約50%的帶寬,那么你租用來的那點(diǎn)帶寬就可以服務(wù)多一倍的客戶了。
IIS6已經(jīng)內(nèi)建了Gzip壓縮的支持,可惜,沒有設(shè)置更好的管理界面。所以要打開這個(gè)選項(xiàng),還要費(fèi)些功夫。
首先,如果你需要壓縮靜態(tài)文件(HTML),需要在硬盤上建一個(gè)目錄,并給它“IUSR_機(jī)器名”這個(gè)用戶的寫權(quán)限。如果壓縮動(dòng)態(tài)文件(php,asp,aspx)就不需要了,因?yàn)樗捻撁媸敲看味紕?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ò)展。名字無所謂,下面的添加文件的路徑是:
c:\windows\system32\inetsrv\gzip.dll,然后啟用這個(gè)擴(kuò)展。
這時(shí)候靜態(tài)內(nèi)容是可以壓縮的,但是對于動(dòng)態(tài)內(nèi)容,aspx文件卻不在壓縮范圍內(nèi)。因?yàn)槟J(rèn)的可壓縮文件并沒有這個(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ù),就可以體會(huì)到壓縮后的速度了。不過通常可能不會(huì)有太明顯的感覺,可以用//www.port80software.com/tools/compresscheck.asp這個(gè)頁面來檢查你的網(wǎng)頁是否壓縮過了,以及壓縮比和加快的速度。整個(gè)過程對CPU的占用基本上感覺不出來。