[摘][测]Apache2.2 使用 mod_deflate 增進傳輸效能

以下文章为转摘于[http://ying.homedns.org/wp/archives/2005/08/13/12/46/48/]
并经过测试 环境是 fedora 4.0  Apache/2.2.0 PHP  5.1.2
原因:
本人托管了台服务器,发现该服务器对网通、铁通上网的用户下载打开速度很快,可以达到200k/秒
但电信用户却是特别的慢,基本是 10k/秒都没有。打开的页面越大就越慢。一个网站首面打开平均时间需要20秒左右,后来想到采用apache 输出压缩模块,先是尝试gzip 模块,发现我安装的 Apache/2.2.0 modules 下并没有mod_gzip.so,于是从网上下载,安装,但是失败了,于是找到了以下这篇文章,当即试了下。效果真不错 modules/mod_deflate.so apache2自带,不需要自己再去编译安装了,半分钟搞定。重新运行首页一看运行时间: 0.210697174072s  原来最少可是需要 15s的 ,看来效果的确太好了。
------------------------------------------------

要加快網頁傳輸的速度,一個方法是增加網路的頻寬,另一個方法是降低資料量,這是大家都知道的道理. HTTP 通訊協定基本上就是 server 接受 client 的 request (GET) 然後送出被要求的資料,如果 server 端可以送出一份壓縮過的資料而可以被 client 端接受,那麼雖然是傳送相同的資料,但是經過壓縮就可以有效的降低資料量.

本站使用 Win32 的 Apache 2.0.54,如果想要達成上面講的機制,要另加一個 gzip 的模組 mod_gzip,這裡可以下載 mod_gzip 預先編譯好的版本 mod_gzip-2.0.53-w32.zip,用在 Apache 2.0.54 沒問題. 用法如下:

在 httpd.conf 加上
LoadModule gzip_module modules/mod_gzip.so

<ifmodule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_compression_level 9
mod_gzip_item_include file /.css$
mod_gzip_item_include file /.js$
mod_gzip_item_include mime text/.*
</ifmodule>

其中 mod_gzip_compression_level 9 是最高壓縮,mod_gzip_item_include 是設定什麼樣的資料檔要壓縮,上例中 *.css 及 *.js 會被壓縮傳送. 圖檔如 .jpg, .png,或音樂 .mp3 等,則不宜再壓縮,因為檔案本身就已經是壓縮過的.

修改完後要 restart Apache. Apache 如果接到 browser 送來的 Accept-Encoding 含有 gzip 就會以 gzip 壓縮再傳送(Accept-Encoding: gzip,deflate ),現在新的 browser 都已經支援. 如果 browser 沒有送來支援的訊息,server 端就會以不壓縮的原資料傳送.

實驗結果,本來 style.css 這個檔是 12911 bytes,壓縮傳送是 3342 bytes,省了近 10k 的傳輸量,意謂者使用者等待的時間縮短了.

Apache2 官方包裝內含有 mod_deflate,是一樣的功能,不過壓縮能力比 mod_gzip 差一點,用法不一樣.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值