服務(wù)器端如何開啟GZIP壓縮功能(Apache、IIS、Nginx)
我們知道做好負(fù)載均衡對(duì)網(wǎng)站的正常運(yùn)行,用戶體驗(yàn)相當(dāng)重要。在負(fù)載均衡中有一個(gè)必須要做的事情就是給服務(wù)器開啟GZIP壓縮功能,對(duì)用戶請(qǐng)求的頁面進(jìn)行壓縮處理,以達(dá)到節(jié)省網(wǎng)絡(luò)帶寬,提高網(wǎng)站速度的作用。
GZIP是若干文件壓縮程序的簡稱,通常指GNU計(jì)劃的實(shí)現(xiàn),此處的GZIP代表的就是GUN ZIP,這也是HTTP1.1協(xié)議定義的兩種壓縮方法中最常用的一種壓縮方法,客戶端瀏覽器大都支持這種壓縮格式。接下來,DNSLA將介紹apache、IIS、nginx 這些現(xiàn)在流行的web服務(wù)器如何開啟GZIP壓縮的方法。
Apache如何開啟GZIP功能
Apache開啟GZIP要看查看是否已經(jīng)開啟mod_deflate模塊,如果沒有則需要先加載,在配置文件httpd.conf中將
LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so
前面的#號(hào)去掉。DNSLA建議,如果對(duì)apache的配置文件不太懂的客戶在修改配置文件之前對(duì)配置文件進(jìn)行備份。
開啟模塊后,在httpd.conf配置文件的最下面空白處添加一下內(nèi)容:
<IfModule mod_deflate.c> # 告訴 apache 對(duì)傳輸?shù)綖g覽器的內(nèi)容進(jìn)行壓縮 SetOutputFilter DEFLATE # 壓縮等級(jí) 9 DeflateCompressionLevel 9 </IfModule>
這樣就能對(duì)所有文件進(jìn)行 gzip 壓縮了。壓縮等級(jí)是個(gè) 1-9 之間的整數(shù),取值范圍在 1(最低) 到 9(最高)之間,不建議設(shè)置太高,雖然有很高的壓縮率,但是占用更多的CPU資源。
實(shí)際開發(fā)中我們并不需要對(duì)所有文件進(jìn)行壓縮,比如我們無需對(duì)圖片文件進(jìn)行g(shù)zip壓縮,因?yàn)閳D片文件(一般為jpg、png等格式)本身已經(jīng)壓縮過了,再進(jìn)行g(shù)zip壓縮可能會(huì)適得其反(詳見圖片要啟用gzip壓縮嗎?絕對(duì)不要!,背景圖片千萬不要gzip壓縮,尤其是PNG),類似的還有 PDF 以及音樂文件。所以我們可以設(shè)置過濾指定文件或者對(duì)指定文件進(jìn)行壓縮。
比如我們要對(duì)圖片等特殊文件不進(jìn)行 gzip 壓縮處理:
<IfModule mod_deflate.c> # 告訴 apache 對(duì)傳輸?shù)綖g覽器的內(nèi)容進(jìn)行壓縮 SetOutputFilter DEFLATE # 壓縮等級(jí) 9 DeflateCompressionLevel 9 #設(shè)置不對(duì)后綴gif,jpg,jpeg,png的圖片文件進(jìn)行壓縮 SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary </IfModule>
或者指定文件格式進(jìn)行壓縮:
<IfModule mod_deflate.c> # 壓縮等級(jí) 9 DeflateCompressionLevel 9 # 壓縮類型 html、xml、php、css、js AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-php AddOutputFilter DEFLATE js css </IfModule>
其中DeflateCompressionLevel
的意思是壓縮等級(jí),共分為1-9,9級(jí)為最高,不建議使用太高的壓縮比,這樣會(huì)對(duì)CPU產(chǎn)生太大的負(fù)擔(dān)。
IIS如何開啟GZIP功能
打開IIS管理工具,在右鍵網(wǎng)站打開網(wǎng)站屬性,在服務(wù)選項(xiàng)卡中開啟HTTP壓縮,不建議選中壓縮應(yīng)用程序文件,但一定要選上壓縮靜態(tài)文件,不然就等于沒有壓縮,達(dá)不到負(fù)載均衡了。然后選中我那個(gè)站下面那個(gè)服務(wù)器擴(kuò)展,新建一個(gè)服務(wù)器擴(kuò)展,名字為GZIP,下面的添加文件路徑為:c:\windows\system32\inetsrv\gzip.dll,然后啟用這個(gè)擴(kuò)展。DNSLA提醒大家,還沒結(jié)束,第三步是,我們要修改配置文件,在配置文件之前要停止IIS服務(wù),(DNSLA提醒大家一定要先關(guān)閉IIS服務(wù))打開C:\Windows\System32\inetsrv\MetaBase.xml,這個(gè)文件很大,找到下面一段信息:
<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>
修改這個(gè)文件是要增加一些要進(jìn)行壓縮的文件后綴,其中 HcFileExtensions 是靜態(tài)文件的擴(kuò)展名,增加 js 和 css 等;HcScriptFileExtensions 為動(dòng)態(tài)文件的擴(kuò)展名,增加 aspx,HcDynamicCompressionLevel改成9,(0-10,6是性價(jià)比最高的一個(gè))。
然后需要重啟一下IIS服務(wù)即可。
Nginx如何開啟GZIP功能
相對(duì)apache 和 IIS nginx開啟GZIP簡單很多,只需要打開配置文件 nginx.conf找到gzip on 把前面的注釋符號(hào)#去掉即可開啟GZIP服務(wù)。然后配置GZIP即可。
下面是一個(gè)相對(duì)優(yōu)化不錯(cuò)的配置,DNSLA建議使用。
Gzip on; gzip_min_length 1024; gzip_buffers 4 8k; gzip_types text/plain application/x-javascript text/css application/xml;
到此這篇關(guān)于服務(wù)器端如何開啟GZIP壓縮功能(Apache、IIS、Nginx)的文章就介紹到這了,更多相關(guān)服務(wù)器端開啟GZIP壓縮內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。