2011年3月18日 星期五

iis 壓縮網頁,增加網頁效能

應用 IIS 6.0 的 Gzip 壓縮功能降低網路傳輸量

生存在資訊爆炸的網頁程式設計師們應該都會遇到網站效能不佳的問題,然而網站效能不佳有多種原因,舉凡 Web Server 本身的效能問題、系統架構設計不良、後端資料庫負載過重及設計不良,Web Server 將網頁內容傳輸到使用者瀏覽器的網路傳輸問題等等,這些都是需要面對的問題,網路傳輸問題最簡單也最容易解決的就是降低Web Server傳輸到使用者瀏覽器的網頁內容大小,降低網頁內容大小也有多種方法,例如把HTML檔案的換行及不必要的空白字元移除,CSS 盡量設計共用架構不要使用 Inline,壓縮 Javascript 檔案,縮小引用的圖檔等,還有一個大部分 Web Server 如: WebSphere、APACHE、IIS 5.0 以上都支援的 GZIP HTTP 壓縮功能,不過你用壓縮功能一定要犧牲一些 CPU Time ,目前大部分入口網站也都使用此項功能來減少頻寬的使用率,有效的提高網頁瀏覽的速度,我的 E 政府 (www.gov.tw)、Yahoo(tw.yahoo.com) 等大型入口網站也都有使用 GZIP,這也說明了他是個很普遍的技術,如果想提升瀏覽速度的話,不妨盡快評估導入此功能。


壓縮前:
傳回的 html 為未壓縮的內容.


壓縮後:
content-encoding: 的內容己修改為 gzip


相關工具:
IIS 6.0 Resource Kit Tools:
http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499&DisplayLang=en


相關文章:
1.應用 IIS 6.0 的 Gzip 壓縮功能降低網路傳輸量:
http://www.icopy.net.tw/print/forum_posts.asp?TID=459

2. 網頁壓縮檢測: http://gzip.zzbaike.com/
檢測結果:
原本 24.3 kb 的 html 到 client 端只剩 4.5kb, 壓縮率到 81.4%.

3. Enabling HTTP Compression (IIS 6.0)
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/502ef631-3695-4616-b268-cbe7cf1351ce.mspx?mfr=true



設定方式:
啟用動態頁面(asp,dll,exe)內容壓縮的指令:
cscript adsutil.vbs set w3svc/filters/compression/parameters/HcDoDynamicCompression true

建議: 動態壓縮比設低一點, 可以兼顧 Server CPU performance 及 網路傳輸的 performance


啟用靜態頁面(html,htm,js,css)內容壓縮的指令:
cscript adsutil.vbs set w3svc/filters/compression/parameters/HcDoStaticCompression true

附註: adsutil.vbs 檔案已經放在 C:\Inetpub\AdminScripts\ 目錄下.

這2個步驟, 可以用滑鼠來做,

1.開啟「網際網路資訊服務(IIS)管理員」,選擇「網站」後點選滑鼠右鍵選擇「內容(R)」。

2.選取「服務」頁籤後,請勾選「壓縮應用程式檔案」和「壓縮靜態檔案」,其餘HTTP壓縮相關設定請視伺服器效能設定。

3.返回「網際網路資訊服務(IIS)管理員」,選擇「網頁服務延伸」,選擇後右方區塊會顯示網頁服務延伸項目,請在空白處點選滑鼠右鍵選擇「新增網頁服務延伸(A)」。

4.請設定延伸名稱為「GZIP」,新增一筆需要的檔案為「C:\WINDOWS\system32\inetsrv\gzip.dll」(此為預設位置可能因為您安裝的不同而有所不同),並勾選「設定延伸狀態成允許」後確定。

5.當前述步驟執行完畢後,就會在網頁服務延伸項目中看到GZIP。

6.接下來設定GZIP可以壓縮的副檔名,返回「網際網路資訊服務(IIS)管理員」,選擇「主機名稱(本機電腦)」後點選滑鼠右鍵選擇「內容(R)」。

7.在「網際網路資訊服務」頁籤,請勾選「啟用直接Metabase編輯(N)」。

8.接下來請開啟「c:\windows\system32\inetsrv\MetaBase.xml」(此為預設位置可能因為您安裝的不同而有所不同),並搜尋「IIsCompressionScheme」字串。
可以執行指令 notepad c:\windows\system32\inetsrv\MetaBase.xml


9.請設定「HcDoDynamicCompression」及「HcDoOnDemandCompression」兩個屬性為TRUE。

10.設定「HcDynamicCompressionLevel」壓縮等級1 - 9,數字越大越耗費CPU資源,請視伺服器效能設定。建議: 使用 3 或 5 即可.

11.設定「HcFileExtensions」靜態頁面副檔名,可設定類型建議為
htm
html
xml
css
txt
pdf
doc
js
swf
txt

12.設定「HcScriptFileExtensions」動態頁面副檔名,可設定類型建議為
asp
aspx
asmx
dll
exe

13.存檔完畢,重新啟動IIS。



資料來源:



Facebook 留言板