eSafe白帽駭客資安網-網絡安全背後的巨人,提供駭客,網站入侵測試,網站被駭,網站漏洞,駭客入侵,資訊安全,入侵,ecshop,wordpress,漏洞修復,木馬清除,資安服務

在iis6中啟用Gzip

         
           現在主流瀏覽器基本都支持 Gzip 壓縮,因此這也成了 WebServer 優化策略的一種常規手段。啟用壓縮後能有效減少網頁傳輸數據大小,使得有限帶寬能提供更多的請求,並在一定程度上提高了網頁 “顯示” 速度。


 

IIS6 提供了對 Gzip 的支持,只可惜有點不完善,需要我們自己手工做些設置。

步驟

1. 在 “IIS 管理器” 中,打開 “網站 > 屬性” 對話框,切換到 “服務” 頁卡,選中兩個壓縮選項。

2. 新增一個服務擴展,路徑為 “%windir%System32inetsrvgzip.dll”。添加完成後,允許該擴展使用。

3. 在 “管理工具 > 服務” 中,停止 “IIS Admin Service”。

4. 用記事本打開 “%windir%system32inetsrvMetaBase.xml”,找到 “IIsCompressionScheme”,按下述方法修改、保存。(建議修改前先做備份)

如果需要壓縮動態文件,則將 HcDoDynamicCompression設置為”TRUE”,並在HcScriptFileExtensions中增加您要壓縮的動態文件後綴名, 如aspx (由於我要優化的系統中,做了 html -> aspx 的 URL Rewrite,所以將 html、htm 也加入了)。

如果需要壓縮靜態文件,則將HcDoStaticCompression和HcDoOnDemandCompression設置為 “TRUE”,並在HcFileExtensions中增加您需要壓縮的靜態文件後綴名,如xml、css等。

HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的壓縮率,數字(0~9)越小壓縮率越低。

看來效果非常不錯。

用了CDN服務,在按照上面的方法配置好Gzip後,不通過CDN,直接用Fidller或者FireFox Firebug看頁面信息,都能看到已經通過Gzip壓縮過了,但是在Linux下面使用wget、curl等 工具查看同樣的頁面信息時,卻發現沒有壓縮。這個問題一直沒有解決。最後在MetaBase.xml第三段IIsCompressionSchemes中 發現了三個很重要的參數:

  1. HcNoCompressionForHttp10
  2. HcNoCompressionForProxies
  3. HcNoCompressionForRange

它們的默認值分別是:

  1. HcNoCompressionForHttp10=”TRUE”
  2. HcNoCompressionForProxies=”TRUE”
  3. HcNoCompressionForRange=”FALSE”

當把HcNoCompressionForHttp10的值設置成FALSE時,wget與curl就可以看到頁面已經被gzip壓縮了。

由此分析:雖然wget與curl在頁面返回信息中寫著其使用了http1.1,但實際上它們實際仍然在使用http1.0。禁止為http1.0啟用壓縮設為否,就可以解決這個問題了。

分享: