轉自:http://down.chinaz.com/server/201202/1645_1.htm
最近無事研究一些Web的優化,用工具page speed檢測網站時發現還沒有開啟gzip壓縮,於是上網找來資料實驗一下;在apache2.0以上(包括apache2.0)的版中gzip壓縮使用的是mod_deflate模塊,下面是具體配置步驟
第1步
LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so
打開httpd.conf后,先將上面兩行配置前面的#號去掉,這樣apache就會啟用這兩個模塊,其中mod_deflate是壓縮模塊,就是對要傳輸到客戶端的代碼進行gzip壓縮;mod_headers模塊的作用是告訴瀏覽器頁面使用了gzip壓縮,如果不開啟mod_headers那么瀏覽器就會對gzip壓縮過的頁面進行下載,而無法正常顯示。
第2步
在httpd.conf中加入以下代碼,可以加到任何空白地方,不了解apache的朋友,如果擔心加錯地方,就放到http.conf文件的最后一行,如果是虛擬服務器可以寫.htaccess文件里面,然后放在項目下即可。
<IfModule mod_deflate.c> SetOutputFilter DEFLATE #必須的,就像一個開關一樣,告訴apache對傳輸到瀏覽器的內容進行壓縮 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>
本配置到這里apache中的gzip壓縮就配置完成,重啟apache后,新的配置就會生效。最后再用工具檢查一下,果然分數提高了很多~呵呵。 不過開啟gzip功能需要額外CPU資源開銷。