天天看點

linux下apache的gzip壓縮功能

轉自:

http://blog.csdn.net/wublue1234/article/details/5589124 

http://blog.csdn.net/yybjroam05/article/details/7726516

在原文基礎上做了部分修改和添加。 

 HTTP 壓縮可以大大提高浏覽網站的速度,它的原理是,在用戶端請求網頁後,從伺服器端将網頁檔案壓縮,再下載下傳到用戶端,由用戶端的浏覽器負責解壓縮并浏覽。相對于普通的浏覽過程HTML ,CSS,Javascript , Text ,它可以節省40%左右的流量。更為重要的是,它可以對動态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等輸出的網頁也能進行壓縮,壓縮效率驚人

    gzip功能能在消耗一點點CPU使用率的情況下,大幅減少網頁在傳輸過程中的帶寬(大約60%-75%)。最近一直在折騰ctusky網站打開速度的事情,所有關到打開速度的我總是非常關心,下面就來介紹一下apache2下開啟gzip壓縮的方法。

    正确區分mod_deflate和mod_gzip

    所謂gzip,其實在早期的apache 1.x系列版本中沒有内建網頁壓縮技術,是以才需要去gzip壓縮,apache2官方在開發的時候,就已經把網頁壓縮考慮進去,内建了mod_deflate子產品,是以apache2就不需要使用到mod_gzip了,這兩者的工作原理是類似的,還有啟用mod_deflate這個網頁壓縮的子產品,功能和效率和mod_gzip是差不多的,甚至還好一些,就不需要再用mod_gzip子產品了。

    去掉#LoadModule headers_module modules/mod_headers.so前面的注釋#,

    添加LoadModule deflate_module modules/mod_deflate.so

    可能還需要添加子產品:

    LoadModule filter_module modules/mod_filter.so

    網上給的代碼是這樣的

    <VirtualHost *:8015>

    DocumentRoot D:/AppServ/www/web

    <IfModule mod_deflate.c>

    <Location "/">

    SetOutputFilter DEFLATE

    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 /.(?:gif|jpe?g|png)$ no-gzip dont-vary

    Header append Vary User-Agent env=!dont-vary

    </Location>

    </ifmodule>

    </VirtualHost>

    通過仿如下代碼可以修改對應的壓縮程度等級:

    <ifmodule mod_deflate.c>

    DeflateCompressionLevel 9

    AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php

    AddOutputFilter DEFLATE js css

    </ifmodule>

    DeflateCompressionLevel預設可以采用6這個數值,以維持耗用處理器效能與網頁壓縮品質的平衡。

    還有一個例子

    <ifmodule mod_deflate.c>

    AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php application/x-javascript text/css

    </ifmodule>

    提高了吧

繼續閱讀