天天看點

啟用IIS的Gzip壓縮功能

現在的浏覽器IE6和Firefox都支援用戶端Gzip,也就是說,在伺服器上的網頁,傳輸之前,先使用Gzip壓縮再傳輸給用戶端,用戶端接收之後由浏覽器解壓顯示,這樣雖然稍微占用了一些伺服器和用戶端的CPU,但是換來的是更高的帶寬使用率。對于純文字來講,壓縮率是相當可觀的。如果每個使用者節約50%的帶寬,那麼你租用來的那點帶寬就可以服務多一倍的客戶了。

IIS6已經内建了Gzip壓縮的支援,可惜,沒有設定更好的管理界面。是以要打開這個選項,還要費些功夫。

首先,如果你需要壓縮靜态檔案(HTML),需要在硬碟上建一個目錄,并給它“IUSR_機器名”這個使用者的寫權限。如果壓縮動态檔案(PHP,asp,aspx)就不需要了,因為它的頁面是每次都動态生成的,壓縮完就放棄。然後在IIS管理器中,“網站”上面右鍵-屬性,不是下面的某個站點,而是整個網站。進入“服務”标簽,選上啟用動态内容壓縮,靜态内容壓縮。

然後選中網站下面那個伺服器擴充,建立一個伺服器擴充。名字無所謂,下面的添加檔案的路徑是:

c:\windows\system32\inetsrv\gzip.dll,然後啟用這個擴充。

這時候靜态内容是可以壓縮的,但是對于動态内容,aspx檔案卻不在壓縮範圍内。因為預設的可壓縮檔案并沒有這個擴充名。而管理界面中你又找不到可以增加擴充名的地方,這時候隻能去修改它的配置檔案了。

在c:\windows\system32\inetsrv\下面有個MetaBase.xml檔案,可以用記事本打開,找到IIsCompressionScheme,有三個相同名字的段,分别是deflate,gzip,Parameters,第三段不用管它,前兩段有基本相同的參數,在這兩段的參數HcScriptFileExtensions下面都加上一行aspx,如果你有其它的動态程式要壓縮,也加在這裡。HcDynamicCompressionLevel改成9,(0-10,9是成本效益最高的一個)。

然後需要重新開機一下IIS服務,就可以體會到壓縮後的速度了。不過通常可能不會有太明顯的感覺,可以用http://www.port80software.com/tools/compresscheck.asp這個頁面來檢查你的網頁是否壓縮過了,以及壓縮比和加快的速度。整個過程對CPU的占用基本上感覺不出來。