現(xiàn)代的瀏覽器IE6和Firefox都支持客戶端Gzip,也就是說,在服務(wù)器上的網(wǎng)頁,傳輸之前,先使用Gzip壓縮再傳輸給客戶端,客戶端接收之后由瀏覽器解壓顯示,這樣雖然稍微占用了一些服務(wù)器和客戶端的 CPU,但是換來的是更高的帶寬利用率。對于純文本來講,壓縮率是相當(dāng)可觀的。如果每個用戶節(jié)約50%的帶寬,那么你租用來的那點帶寬就可以服務(wù)多一倍的客戶了。
IIS6已經(jīng)內(nèi)建了Gzip壓縮的支持,可惜,沒有設(shè)置更好的管理界面。所以要打開這個選項,還要費些功夫。
首先,如果你需要壓縮靜態(tài)文件(HTML),需要在硬盤上建一個目錄,并給它“IUSR_機器名”這個用戶的寫權(quán)限。如果壓縮動態(tài)文件(php,asp,aspx)就不需要了,因為它的頁面是每次都動態(tài)生成的,壓縮完就放棄。然后在IIS管理器中,“網(wǎng)站”上面右鍵-屬性,不是下面的某個站點,而是整個網(wǎng)站。進入“服務(wù)”標(biāo)簽,選上啟用動態(tài)內(nèi)容壓縮,靜態(tài)內(nèi)容壓縮。
然后選中網(wǎng)站下面那個服務(wù)器擴展,新建一個服務(wù)器擴展。名字無所謂,下面的添加文件的路徑是:
c:\windows\system32\inetsrv\gzip.dll,然后啟用這個擴展。
這時候靜態(tài)內(nèi)容是可以壓縮的,但是對于動態(tài)內(nèi)容,aspx文件卻不在壓縮范圍內(nèi)。因為默認的可壓縮文件并沒有這個擴展名。而管理界面中你又找不到可以增加擴展名的地方,這時候只能去修改它的配置文件了。
在c:\windows\system32\inetsrv\下面有個MetaBase.xml文件,可以用記事本打開,找到IIsComPRessionScheme,有三個相同名字的段,分別是deflate,gzip,Parameters,第三段不用管它,前兩段有基本相同的參數(shù),在這兩段的參數(shù) HcScriptFileExtensions下面都加上一行aspx,如果你有其它的動態(tài)程序要壓縮,也加在這里。 HcDynamicCompressionLevel改成9,(0-10,9是性價比最高的一個)。
然后需要重啟一下IIS服務(wù),就可以體會到壓縮后的速度了。不過通?赡懿粫刑黠@的感覺,可以用//www.port80software.com/tools/compresscheck.asp這個頁面來檢查你的網(wǎng)頁是否壓縮過了,以及壓縮比和加快的速度。整個過程對CPU的占用基本上感覺不出來。