KEYSWORD: Apache2 , mod_deflate , gzip , mod_gzip, mod_deflate.so
今天帮朋友查看一个服务器, 无意间看到APACHE2.2.4的配制里还在配制着GZIP的压缩,同时上面也启用mod_deflate模块,感觉现在这样的情况好像还挺多,很多人 看网上的教程如何启用GZIP压缩,如何提高带宽利用率等….但教程也没注明相应的适用版本,给很多新人造成误导,在这里说一下个人的理解和使用测试经 验.
一.
1.Apache 1.x系列没有内建网页压缩技术,所以才去用GZIP压缩。Apache 2官方在开发的时候,就把网页压缩考虑进去,内建了mod_deflate这个模块,所以Apache 2就不需要使用到mod_gzip, 两者运作的原理是类似的。
2.启用mod_deflate这个网页压缩的模块,功能和效率和mod_gzip是差不多的,甚至还好一些,就不需要再用mod_gzip模块了
二.
编译安装APACHE2.2.XX: 编译源码时要加上 --enable-deflate=shared
在http.conf里会找到如下行; 如果没有请加上
LoadModule deflate_module modules/mod_deflate.so
如果是YUM RPM安装的话就自动开启了.压缩比例:约能压缩下70%的体积。
三.
这样就开启了压缩功能.可以很好的使用了,如果你还想更详尽的定制的话,请看下面:
可以在http.conf后面加上这一段进行定制:(如果不是非常有必要,我不推荐大家这样.用默认的就很好了,没必要自个给自个找麻烦)
1 | <ifmodule mod_deflate.c> |
这样可以压缩一般网页中会用到的html、xml、php、css、js等格式档案输出,虽然会占用掉服务器处理器的一点点处理器时间,浏览者在接收 网页数据时也会消耗极短暂的一点点处理器时间,不过却可以大幅减少数据传输量,减少网络带宽被吃掉的情形。
DeflateCompressionLevel 9是指压缩程度的等级,从1到9,9是最高等级。据了解,这样做最高可以减少8成大小的传输量(看档案内容而定),最少也能够节省一半。
DeflateCompressionLevel 预设可以采用 6 这个数值,以维持耗用处理器效能与网页压缩质量的平衡。
至于已经是压缩过的图片格式如jpg,音乐档案如mp3、压缩文件如zip之类的,就可以不需要再压缩了,因为这种档案你一开放服务器传输时压缩,处理器 时间会跑不完。
这里是一个兄弟的测试数据对比(引用)
-------------------------------
Apache 的 mod_deflate 和 gzip compression 的对比.
* 不使用任何壓縮: 430KB
* 僅使用 gzip: 323KB
* 僅使用 Apache 的 deflate 模組: 247KB
* 同時使用 deflate 以及 gzip: 247KB
至於時間的部份, 差異倒不是很大, 大約都是在 10-20 秒左右.