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壓縮相關參數
<ifmodule> #壓縮率,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 </ifmodule>
3、重啟Apache服務器并且使用瀏覽器請求驗證是否Gzip生效。
相關推薦: