HTTP協定上的GZIP編碼是一種用來改進WEB應用程式性能的技術。大流量的WEB站點常常使用GZIP壓縮技術來讓使用者感受更快的速度。這一般是指WWW伺服器中安裝的一個功能,當有人來通路這個伺服器中的網站時,伺服器中的這個功能就将網頁内容壓縮後傳輸到來訪的電腦浏覽器中顯示出來.一般對純文字内容可壓縮到原大小的40%.這樣傳輸就快了,效果就是你點選網址後會很快的顯示出來.當然這也會增加伺服器的負載. 一般伺服器中都安裝有這個功能子產品的。
減少檔案大小有兩個明顯的好處,一是可以減少存儲空間,二是通過網絡傳輸檔案時,可以減少傳輸的時間。gzip 是在 Linux 系統中經常使用的一個對檔案進行壓縮和解壓縮的指令,既友善又好用。
GZip壓縮的基本流程如下:
1. Web伺服器接收到浏覽器的HTTP請求後,檢查浏覽器是否支援HTTP壓縮(Accept-Encoding 資訊);
2. 如果浏覽器支援HTTP壓縮,Web伺服器檢查請求檔案的字尾名;
3. 如果請求檔案是HTML、CSS等靜态檔案,Web伺服器到壓縮緩沖目錄中檢查是否已經存在請求檔案的最新壓縮檔案;
4. 如果請求檔案的壓縮檔案不存在,Web伺服器向浏覽器傳回未壓縮的請求檔案,并在壓縮緩沖目錄中存放請求檔案的壓縮檔案;
5. 如果請求檔案的最新壓縮檔案已經存在,則直接傳回請求檔案的壓縮檔案;
6. 如果請求檔案是動态檔案,Web伺服器動态壓縮内容并傳回浏覽器,壓縮内容不存放到壓縮緩存目錄中。
網上許多開啟GZIP的方法,但是研究了許多才成功了,在這裡記錄下面
編輯 http.conf 檔案
去掉 #LoadModule headers_module modules/mod_headers.so 前面的注釋#
去掉 #LoadModule deflate_module modules/mod_deflate.so 前面的注釋#
去掉 #LoadModule filter_module modules/mod_filter.so 前面的注釋#
檔案末尾加上
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript application/javascript application/json #對指定的内容進行壓縮,壓縮方式為預設的一個方法
</IfModule>
詳細配置:
<IfModule mod_deflate.c>
DeflateCompressionLevel 6
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript application/javascript application/json
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary #設定不對字尾gif,jpg,jpeg,png的圖檔檔案進行壓縮
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary #同上,就是設定不對exe,tgz,gz。。。的檔案進行壓縮
SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
AddOutputFilterByType DEFLATE text/* #設定對檔案是文本的内容進行壓縮,例如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 ,但是事實上它沒有問題
</IfModule>
作者:碼農豆豆 微信公衆号: ![]() 出處:http://www.cnblogs.com/fly_binbin/ 本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。 如果文中有什麼錯誤,歡迎指出。以免更多的人被誤導。 |