我們知道做好負載均衡對網站的正常運行,用戶體驗相當重要。在負載均衡中有一個必須要做的事情就是給服務器開啟GZIP壓縮功能,對用戶請求的頁面進行壓縮處理,以達到節省網絡帶寬,提高網站速度的作用。
GZIP是若干文件壓縮程序的簡稱,通常指GNU計劃的實現,此處的GZIP代表的就是GUN ZIP,這也是HTTP1.1協議定義的兩種壓縮方法中最常用的一種壓縮方法,客戶端瀏覽器大都支持這種壓縮格式。接下來,DNSLA將介紹Apache、IIS、Nginx 這些現在流行的web服務器如何開啟GZIP壓縮的方法。
Apache如何開啟GZIP功能
Apache開啟GZIP要看查看是否已經開啟mod_deflate模塊,如果沒有則需要先加載,在配置文件httpd.conf中將
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
前面的#號去掉。DNSLA建議,如果對apache的配置文件不太懂的客戶在修改配置文件之前對配置文件進行備份。
開啟模塊后,在httpd.conf配置文件的最下面空白處添加一下內容:
<ifmodule mod_deflate.c>
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
DeflateCompressionLevel 6
AddOutputFilterByType DEFLATE text/html text/plain text/xml Application/x-httpd-php
AddOutputFilter DEFLATE js css
</ifmodule>
其中DeflateCompressionLevel 的意思是壓縮等級,共分為1-9,9級為最高,不建議使用太高的壓縮比,這樣會對CPU產生太大的負擔。
IIS如何開啟GZIP功能
打開IIS管理工具,在右鍵網站打開網站屬性,在服務選項卡中開啟HTTP壓縮,不建議選中壓縮應用程序文件,但一定要選上壓縮靜態文件,不然就等于沒有壓縮,達不到負載均衡了。然后選中我那個站下面那個服務器擴展,新建一個服務器擴展,名字為GZIP,下面的添加文件路徑為:c:windowssystem32inetsrvgzip.dll,然后啟用這個擴展。DNSLA提醒大家,還沒結束,第三步是,我們要修改配置文件,在配置文件之前要停止IIS服務,(DNSLA提醒大家一定要先關閉IIS服務)打開C:WindowsSystem32inetsrvMetaBase.xml,這個文件很大,找到下面一段信息:
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
HcCompressionDll="%windir%system32inetsrvgzip.dll"
HcCreateFlags="1"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="0"
HcFileExtensions="htm
html
txt"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="asp
dll
exe"
>
</IIsCompressionScheme>
修改這個文件是要增加一些要進行壓縮的文件后綴,其中 HcFileExtensions 是靜態文件的擴展名,增加 js 和 css 等;HcScriptFileExtensions 為動態文件的擴展名,增加 aspx,HcDynamicCompressionLevel改成9,(0-10,6是性價比最高的一個)。
然后需要重啟一下IIS服務即可。
Nginx如何開啟GZIP功能
相對apache 和 IIS nginx開啟GZIP簡單很多,只需要打開配置文件 nginx.conf找到gzip on 把前面的注釋符號#去掉即可開啟GZIP服務。然后配置GZIP即可。
下面是一個相對優化不錯的配置,DNSLA建議使用。
Gzip on;
gzip_min_length 1024;
gzip_buffers 4 8k;
gzip_types text/plain application/x-JAVAscript text/css application/xml;