1. 程式人生 > >如何給Apache開啟GZIP壓縮功能

如何給Apache開啟GZIP壓縮功能

Gzip是一種流行的檔案壓縮演算法,現在的應用十分廣泛,尤其是在Linux平臺。Gzip在現代瀏覽器中預設都是支援的,當一個純文字檔案使用Gzip壓縮可以減少70%以上的檔案大小,壓縮後可以大大降低了網路傳輸的位元組數,使用Gzip的好處就是可以加快網頁載入的速度,同時是你的網站對搜尋引擎更加友好。下面PHP程式設計師雷雪松詳細的講解下Apache如何使用mod_deflate模組來實現Gzip壓縮網頁內容進行壓縮。

Apache伺服器HTTP請求Gzip處理的過程
1、Apache伺服器接收到瀏覽器的HTTP請求後,檢查瀏覽器是否支援HTTP壓縮(Accept-Encoding 資訊)。
2、如果瀏覽器支援HTTP壓縮,Apache伺服器檢查請求檔案的字尾名。
a、如果請求檔案是HTML、CSS、JS、Images等靜態檔案,Apache伺服器從壓縮緩衝目錄中檢查是否已經存在請求檔案的最新壓縮檔案,如果不存在,返回壓縮的請求檔案,並在壓縮緩衝目錄中存放壓縮檔案,如果已經存在,則直接返回請求檔案的壓縮檔案。
b、如果請求檔案是動態檔案,Web伺服器動態壓縮內容並返回瀏覽器,壓縮內容不存放到壓縮快取目錄中。

Apache支援GZIP壓縮的配置
1、編輯 http.conf 檔案,開啟mod_deflate模組
去掉 #LoadModule headers_module modules/mod_headers.so 前面的註釋#
去掉 #LoadModule deflate_module modules/mod_deflate.so 前面的註釋#
去掉 #LoadModule filter_module modules/mod_filter.so 前面的註釋#

2、配置Gzip壓縮相關引數


#壓縮率,6是建議值。
DeflateCompressionLevel 6
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/gif image/png image/jpe image/swf image/jpeg image/bmp
#排除不需要壓縮的檔案
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI .(?:html|htm)$ no-gzip dont-varySetEnvIfNoCase
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary

3、重啟Apache伺服器並且使用瀏覽器請求驗證是否Gzip生效。