如果你服務(wù)器帶寬很高就不需要做這步了,但是如果你想讓你的帶寬節(jié)省點開啟你的gzip是必不可少,下面我們介紹了關(guān)于apache開啟gzip壓縮配置與用法和其它區(qū)別分享。
開啟apache2的gzip
在http.conf里會找到如下行; 如果沒有請加上
#LoadModule deflate_module modules/mod_deflate.so 去掉“#”號。表示已經(jīng)啟用了GZIP。
更多定制
開啟了壓縮功能.可以很好的使用了,如果你還想更詳盡的定制的話,請看下面:
可以在http.conf后面加上這一段進行定制:(如非必要,用默認的就好了)
- DeflateCompressionLevel 9
- AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
- AddOutputFilter DEFLATE js css
DeflateCompressionLevel 9是指壓縮程度的等級,從1到9,9是最高等級。據(jù)了解,這樣做最高可以減少8成大小的傳輸量(看檔案內(nèi)容而定),最少也能夠節(jié)省一半。
DeflateCompressionLevel 預(yù)設(shè)可以采用 6 這個數(shù)值,以維持耗用處理器效能與網(wǎng)頁壓縮質(zhì)量的平衡。
Web服務(wù)器處理HTTP壓縮的過程如下:
1. Web服務(wù)器接收到瀏覽器的HTTP請求后,檢查瀏覽器是否支持HTTP壓縮(Accept-Encoding 信息);
2. 如果瀏覽器支持HTTP壓縮,Web服務(wù)器檢查請求文件的后綴名;
3. 如果請求文件是HTML、CSS等靜態(tài)文件,Web服務(wù)器到壓縮緩沖目錄中檢查是否已經(jīng)存在請求文件的最新壓縮文件;
4. 如果請求文件的壓縮文件不存在,Web服務(wù)器向瀏覽器返回未壓縮的請求文件,并在壓縮緩沖目錄中存放請求文件的壓縮文件;
5. 如果請求文件的最新壓縮文件已經(jīng)存在,則直接返回請求文件的壓縮文件;
6. 如果請求文件是動態(tài)文件,Web服務(wù)器動態(tài)壓縮內(nèi)容并返回瀏覽器,壓縮內(nèi)容不存放到壓縮緩存目錄中。
第1步
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
打開httpd.conf后,先將上面兩行配置前面的#號去掉,這樣apache就會啟用這兩個模塊,其中mod_deflate是壓縮模塊,就是對要傳輸?shù)娇蛻舳说拇a進行g(shù)zip壓縮;mod_headers模塊的作用是告訴瀏覽器頁面使用了gzip壓縮,如果不開啟mod_headers那么瀏覽器就會對gzip壓縮過的頁面進行下載,而無法正常顯示。
第2步
在httpd.conf中加入以下代碼,可以加到任何空白地方,不了解apache的朋友,如果擔(dān)心加錯地方,就放到http.conf文件的最后一行
- SetOutputFilter DEFLATE #必須的,就像一個開關(guān)一樣,告訴apache對傳輸?shù)綖g覽器的內(nèi)容進行壓縮
- SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary #設(shè)置不對后綴gif,jpg,jpeg,png的圖片文件進行壓縮
- SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary #同上,就是設(shè)置不對exe,tgz,gz。。。的文件進行壓縮
- SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
- AddOutputFilterByType DEFLATE text/* #設(shè)置對文件是文本的內(nèi)容進行壓縮,例如text/html text/css text/plain等
- AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript #這段代碼你只需要了解application/javascript application/x-javascript這段就可以了,這段的意思是對javascript文件進行壓縮
- AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp #這段是告訴apache對php類型的文件進行壓縮
- BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.x 有一些問題,所以只壓縮文件類型是text/html的
- BrowserMatch ^Mozilla/4.0[678] no-gzip # Netscape 4.06-4.08 有更多的問題,所以不開啟壓縮
- BrowserMatch bMSIE !no-gzip !gzip-only-text/html # IE瀏覽器會偽裝成 Netscape ,但是事實上它沒有問題
本配置到這里apache中的gzip壓縮就配置完成,重啟apache后,新的配置就會生效,當(dāng)然這里我們還不會重啟apache因為下一步要配置http緩存,也就是mod_expires模塊。
mod_gzip 和mod_deflate的主要區(qū)別是什么?使用哪個更好呢?
首先一個區(qū)別是安裝它們的Apache Web服務(wù)器版本的差異。Apache 1.x系列沒有內(nèi)建網(wǎng)頁壓縮技術(shù),所以才去用額外的第三方mod_gzip 模塊來執(zhí)行壓縮。而Apache 2.x官方在開發(fā)的時候,就把網(wǎng)頁壓縮考慮進去,內(nèi)建了mod_deflate 這個模塊,用以取代mod_gzip。雖然兩者都是使用的Gzip壓縮算法,它們的運作原理是類似的。
第二個區(qū)別是壓縮質(zhì)量。mod_deflate 壓縮速度略快而mod_gzip 的壓縮比略高。一般默認情況下,mod_gzip 會比mod_deflate 多出4%~6%的壓縮量。
那么,為什么使用mod_deflate?第三個區(qū)別是對服務(wù)器資源的占用。一般來說mod_gzip 對服務(wù)器CPU的占用要高一些。mod_deflate 是專門為確保服務(wù)器的性能而使用的一個壓縮模塊,mod_deflate 需要較少的資源來壓縮文件。這意味著在高流量的服務(wù)器,使用mod_deflate 可能會比mod_gzip 加載速度更快。
新聞熱點
疑難解答