我們知道做好負載均衡對網站的正常運行,用戶體驗相當重要。在負載均衡中有一個必須要做的事情就是給服務器開啟GZIP壓縮功能,對用戶請求的頁面進行壓縮處理,以達到節省網絡帶寬,提高網站速度的作用。
GZIP是若干文件壓縮程序的簡稱,通常指GNU計劃的實現,此處的GZIP代表的就是GUN ZIP,這也是HTTP1.1協議定義的兩種壓縮方法中最常用的一種壓縮方法,客戶端瀏覽器大都支持這種壓縮格式。接下來,DNSLA將介紹apache、IIS、nginx 這些現在流行的web服務器如何開啟GZIP壓縮的方法。
在昨天服務器還沒重裝之前,這個服務器已經開啟了Gzip,因為配置文件在C盤,所以重裝后Gzip壓縮功能就沒了。
今天再次配置開啟Gzip功能,也順便把過程記錄下來分享給有需要的朋友吧。
第一步:增加IIS-gzip解壓功能。
打開IIS -> 右擊網站 -> 屬性 -> 進入服務,不建議選中“壓縮應用程序文件”,但一定要選上“壓縮靜態文件”,不然就等于沒有壓縮,達不到負載均衡了。然后“臨時目錄”和“臨時目錄的最大限制”直接使用默認值即可。如下圖:
第二步:增加IIS-Web服務擴展。
右擊 -> Web服務擴展 -> 增加一個新的Web服務擴展,擴展名填寫“GZIP”,“要求的文件”點擊右側添加輸入路徑:C:\WINDOWS\system32\inetsrv\gzip.dll ,最后選勾“設置擴展狀態為允許”點擊確定。如下圖:
第三步:修改MetaBase.xml文件。
MetaBase.xml文件目錄:C:\Windows\System32\inetsrv\MetaBase.xml *先備份一個到桌面。
停止IIS服務:運行 -> 輸入cmd -> 輸入“net stop iisadmin”停止IIS,打開 MetaBase.xml 文件搜索“deflate”關鍵詞找到以下代碼(大概第3621行):
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="0"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="FALSE"
HcDynamicCompressionLevel="0"
HcFileExtensions="htm
html
txt"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="asp
dll
exe"
>
</IIsCompressionScheme>
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="1"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="0"
HcFileExtensions="htm
html
txt"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="asp
dll
exe"
>
</IIsCompressionScheme>
替換成下面代碼
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="0"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="9"
HcFileExtensions="htm
html
txt
js
css
xml"
HcOnDemandCompLevel="9"
HcPriority="1"
HcScriptFileExtensions="php
dll"
>
</IIsCompressionScheme>
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="1"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="9"
HcFileExtensions="htm
html
txt
js
css
xml"
HcOnDemandCompLevel="9"
HcPriority="1"
HcScriptFileExtensions="php
dll"
>
</IIsCompressionScheme>
特別需要注意的是:以上代碼千萬不能復制錯誤,不是錯了會出問題,而是如果修改錯了,IIS識別到了之后會自動還原成上一次正確的版本,你會發現自己改的又變回來了。
最后保存重啟IIS即可。
運行 -> 輸入cmd -> 輸入“iisreset”重啟IIS。
*如果出現無法編輯MetaBase.xml文件的情況:
打開IIS -> 右擊 -> 本地計算機 -> 屬性 -> Internet信息服務 -> 勾選“允許直接編輯配置數據庫”確定,就可以編輯MetaBase.xml文件了。
如下圖: