IIS或Apache服務器怎樣啟用GZIP壓縮優化網站

2012-8-4 13:54:22 | tags | views

  先來了解一下GZIP,gzip是GNU zip的縮寫,它是一個GNU自由軟件的文件壓縮程序,也經常用來表示gzip這種文件格式。軟件的作者是Jean-loupGailly和Mark Adler。1992年10月31日第一次公開發布,版本號是0.1,目前的穩定版本是1.2.4。
gzip可以級大的加速網站.有時壓縮比率高到80%,近來測試了一下,最少都有40%以上,還是相當不錯的.在Apache2之后的版本,模塊名不叫gzip,而叫mod_deflate
1、Apache啟用gzip
如果要開啟gzip的話,一定要打開下面二個模塊.
LoadModule headers_module modules/mod_headers.so
LoadModule deflate_module modules/mod_deflate.so
設置壓縮比率,取值范圍在 1(最低) 到 9(最高)之間,不建議設置太高,雖然有很高的壓縮率,但是占用更多的CPU資源.
DeflateCompressionLevel 3
AddOutputFilter DEFLATE html xml php js css
<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
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary #對代理的設置
</Location>
下面二個測試網站
http://www.whatsmyip.org/mod_gzip_test/
http://www.gidnetwork.com/tools/gzip-test.php
測試數據對css
Original Size: 44 KB
Gzipped Size: 10 KB
Data Savings: 77.27%
測試數據js
Original Size: 6 KB
Gzipped Size: 2 KB
Data Savings: 66.67%
測試數據php
Original Size: 62 KB
Gzipped Size: 15 KB
Data Savings: 75.81%
上面只是隨機拿的幾個數據,看的出來,使用了gzip壓縮后文件小多了.
另外講一下,有關squid對gzip的處理
在squid中,對同一個URL只保留一份緩存。對于如果不同browser(是否支持壓縮) 如果頻繁交替訪問,例如:對某個cache住的目標,一個http/1.0請求可能會導致squid強制更新其緩存。但接下來的另一個http/1.1請 求又會導致squid再次更新緩存。這樣那squid緩存數據就要頻繁更新,這就極大的降低了cache命中率。
不過還好,現實環境中不支持壓縮的browser畢竟是很少的情況,所以對于緩存命中率的降低很有限.
這個神通廣大的模塊就是mod_gzip.它通過用和gzip一樣的壓縮算法對apache發 出的頁面進行壓縮,可能的話可以把頁面壓縮成為原來大小的十份之一。哪,如果10K的頁面只要傳1K這不就是提速10倍嘛。當然一般網頁只可以達到3-6 倍。那也很不錯。對吧。連google這樣一個大的網站都采用這個技術。你還不快跟上?
這樣一個好東東,來來來,我告訴你如何安裝:分3步,1、下載,2、修改配置,3、測試。
下載
到http://www.remotecommunications.com/apache/mod_gzip 下載mod_gzip.c 還有它的補丁。
安裝, 配置
把mod_gzip放到你的apache的源代碼目錄下,新建一個mod_gzip目錄如果需要補丁(針對1.3.17.la版) 還需運行:
patch mod_gizp.c
按你需要,在配置中選擇動態DSO或靜態編譯進apache系統。如何處理在README中講得很清楚,如-add-module=mod_gzip.c, make,make install等等。這里不多講。
把下列配置加入httpd.conf尾部。
# MOD_GZIP configuration
mod_gzip_on Yes
mod_gzip_minimum_file_size 1002
mod_gzip_maximum_file_size 0
mod_gzip_maximum_inmem_size 60000
mod_gzip_item_include mime "application/x-httpd-php"
mod_gzip_item_include mime text/*
mod_gzip_item_include mime "httpd/unix-directory"
mod_gzip_dechunk Yes
mod_gzip_temp_dir "/tmp"
mod_gzip_keep_workfiles No
mod_gzip_item_include file ".php3$"
mod_gzip_item_include file ".txt$"
mod_gzip_item_include file ".html$"
mod_gzip_item_exclude file ".css$"
mod_gzip_item_exclude file ".js$" 
在保存修改后運行
…/bin/apachectl configtest確保配置修改無誤。
然后用 apachectl restart 指令重起服務。
修改,測試 
在宣布做好了之前在測試一下是優秀程序員的習慣。為了盡量不影響你的用戶的瀏覽,我們可以用把新的apache驅動在8080端口上或者用指令控制mod_gzip起作用的目錄,而不是一下子全用mod_gzip.
用法如下:
MOD_GZIP configuration
沒有問題后你就可以讓你的用戶很開心的發現’XX網站現在好快哦。’
Mod_gzip真的很神奇,100K的HTML大 文檔只要12K就可以傳到用戶端了。越先采用這個技術你的用戶對你的網站的高速度印象就越深。不過有所得必有所失,由于解壓是在客戶端進行的,效果和用戶 的瀏覽器有一定關系。
2、IIS啟用gzip
現代的瀏覽器IE6和Firefox都支持客戶端Gzip,也就是說,在服務器上的網頁,傳輸 之前,先使用Gzip壓縮再傳輸給客戶端,客戶端接收之后由瀏覽器解壓顯示,這樣雖然稍微占用了一些服務器和客戶端的CPU,但是換來的是更高的帶寬利用 率。對于純文本來講,壓縮率是相當可觀的。如果每個用戶節約50%的帶寬,那么你租用來的那點帶寬就可以服務多一倍的客戶了。
IIS6已經內建了Gzip壓縮的支持,可惜,沒有設置更好的管理界面。所以要打開這個選項,還要費些功夫。
首先,如果你需要壓縮靜態文件(HTML),需要在硬盤上建一個目錄,并給它“IUSR_機器 名”這個用戶的寫權限。如果壓縮動態文件(PHP,asp,aspx)就不需要了,因為它的頁面是每次都動態生成的,壓縮完就放棄。然后在IIS管理器 中,“網站”上面右鍵-屬性,不是下面的某個站點,而是整個網站。進入“服務”標簽,選上啟用動態內容壓縮,靜態內容壓縮。
然后選中網站下面那個服務器擴展,新建一個服務器擴展。名字無所謂,下面的添加文件的路徑是:
c:\windows\system32\inetsrv\gzip.dll,然后啟用這個擴展。
這時候靜態內容是可以壓縮的,但是對于動態內容,aspx文件卻不在壓縮范圍內。因為默認的可壓縮文件并沒有這個擴展名。而管理界面中你又找不到可以增加擴展名的地方,這時候只能去修改它的配置文件了。
在 c:\windows\system32\inetsrv\下面有個MetaBase.xml文件,可以用記事本打開,找到 IIsCompressionScheme,有三個相同名字的段,分別是deflate,gzip,Parameters,第三段不用管它,前兩段有基本 相同的參數,在這兩段的參數HcScriptFileExtensions下面都加上一行aspx,如果你有其它的動態程序要壓縮,也加在這里。 HcDynamicCompressionLevel改成9,(0-10,9是性價比最高的一個)。

    相關文章:

發表評論:

◎歡迎參與討論,請在這里發表您的看法、交流您的觀點。

手机捕鱼怎么下载
快乐时时计划软件手机版下载 九五至尊棋牌 球探比分直播 模拟投注 信博彩票的网址多少 快乐时时计划软件手机版下载 重庆时时彩专家杀号 乐虎lehu116 看牌抢庄牛牛4张概率分析 北京福彩pk10前三走势图 星际彩票大发快三 百人牛牛连线 网上飞禽走兽数学打法 秒速时时有假吗 重庆欢乐生肖官网 买大小单双怎么看走势