提高網站訪問速度-IIS開啓gzip

1. HTTP壓縮概述

HTTP壓縮是在Web服務器和瀏覽器間傳輸壓縮文本內容的方法。HTTP壓縮採用通用的壓縮算法如gzip等壓縮HTML、JavaScript或CSS文件。

2. HTTP壓縮工作原理

Web服務器處理HTTP壓縮的工作原理如下:

Web服務器接收到瀏覽器的HTTP請求後,檢查瀏覽器是否支持HTTP壓縮;

  • 如果瀏覽器支持HTTP壓縮,Web服務器檢查請求文件的後綴名;
  • 如果請求文件是HTML、CSS等靜態文件,Web服務器到壓縮緩衝目錄中檢查是否已經存在請求文件的最新壓縮文件;
  • 如果請求文件的壓縮文件不存在,Web服務器向瀏覽器返回未壓縮的請求文件,並在壓縮緩衝目錄中存放請求文件的壓縮文件;
  • 如果請求文件的最新壓縮文件已經存在,則直接返回請求文件的壓縮文件;
  • 如果請求文件是ASPX等動態文件,Web服務器動態壓縮內容並返回瀏覽器,壓縮內容不存放到壓縮緩存目錄中。

 

注意:

     使用Gzip壓縮會增大服務器CPU的使用率但可以通過壓縮而減少服務器向客戶端發送的數據,若使用了Gzip壓縮IIS在向客戶端發送數據時會自動檢測,如果客戶端瀏覽器支持IE6.0,firefox Gzip,則使用Gzip壓縮後再傳送數據,如果不支持,則使用常規方式發送。

所以,總結下他的優缺點,優:壓縮傳輸,速度一般提高2倍。缺:CPU佔用會有所提高,不過通過我的一點分析,GZIP只是在訪問一個頁時纔會進行壓縮,下次如果網頁沒有變動是不會壓縮的,除非是使用壓縮動態文件,這得實時的去壓縮。

 

IIS 6.0中配置HTTP壓縮的步驟如下:

 

  • 打開Internet信息服務(IIS)管理器,右擊"網站"->"屬性",選擇"服務"。在"HTTP壓縮"框中選中"壓縮應用程序文件"和"壓縮靜態文件",按需要設置"臨時目錄"和"臨時目錄的最大限制";
  • 在Internet 信息服務(IIS)管理器,右擊"Web服務擴展"->"增加一個新的Web服務擴展...",在"新建Web服務擴展"框中輸入擴展名"HTTP Compression",添加"要求的文件"爲C:/WINDOWS/system32/inetsrv/gzip.dll,其中Windows系統目錄根據您的安裝可能有所不同,選中"設置擴展狀態爲允許";
  • 使用文本編輯器打開C:/Windows/System32/inetsrv/MetaBase.xml(建議先備份), 找到Location ="/LM/W3SVC/Filters/Compression/gzip",如果需要壓縮動態文件,則將 HcDoDynamicCompression設置爲"TRUE",並在HcScriptFileExtensions中增加您要壓縮的動態文件後綴名,如aspx;如果需要壓縮靜態文件,則將HcDoStaticCompression和HcDoOnDemandCompression設置爲 "TRUE",並在HcFileExtensions中增加您需要壓縮的靜態文件後綴名,如xml、css等; HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的壓縮率,數字越小壓縮率越低;
  • 編輯完畢後保存MetaBase.xml文件;如果文件無法保存,則可能IIS正在使用該文件。打開"開始"->"管理工具"->"服務",停止"IIS Admin Service"後,即可保存;
  • 最後,重新啓動IIS。可以到HTTP壓縮測試網站驗證結果。

以下是幾個gzip頁面壓縮率的在線檢測網站:
1、http://www.whatsmyip.org/mod_gzip_test/
2、http://www.gidnetwork.com/tools/gzip-test.php
3、ttp://www.whatsmyip.org/mod_gzip_test/
4、http://www.gidnetwork.com/tools/gzip-test.php

另一種方法

 網頁Gzip壓縮的優勢是很明顯的,第一減小了服務器的帶寬,第二提高用戶打開網頁速度。

 

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

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

 

  首先,如果你需要壓縮靜態文件(HTML),需要在硬盤上建一個目錄,並給它“IUSR_機器名”這個用戶的寫權限。如果壓縮動態文件(PHP,asp,aspx)就不需要了,因爲它的頁面是每次都動態生成的,壓縮完就放棄。然後在IIS管理器中,“網站”上面右鍵-屬性,不是下面的某個站點,而是整個網站。進入“服務”標籤,選上啓用動態內容壓縮,靜態內容壓縮。

 

 

  然後選中網站下面那個服務器擴展,新建一個服務器擴展。名字無所謂,下面的添加文件的路徑是:

  c:/windows/system32/inetsrv/gzip.dll,然後啓用這個擴展。 自起源網

 

  還沒完呢,我們還需要修改一個配置文件,修改之前請先停止 IIS 服務,打開 C:/Windows/System32/inetsrv/MetaBase.xml,這個文件很大,找到下面一段信息:

 

  HcCompressionDll="%windir%/system32/inetsrv/gzip.dll"

 

  HcCreateFlags="1"

 

  HcDoDynamicCompression="TRUE"

  HcDoOnDemandCompression="TRUE"

  HcDoStaticCompression="TRUE"

 

  HcDynamicCompressionLevel="0" www.bnxb.com

  HcFileExtensions="htm

 

  html

 

  txt"

 

  HcOnDemandCompLevel="10"

 

  HcPriority="1"

  HcScriptFileExtensions="asp

  dll

  exe"

       >

  增加一些要進行壓縮的文件後綴,其中 HcFileExtensions 是靜態文件的擴展名,增加 js 和 css 等;HcScriptFileExtensions 爲動態文件的擴展名,增加 aspx,HcDynamicCompressionLevel改成9,(0-10,9是性價比最高的一個)。

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章