apache启用mod_deflate的GZIP压缩网页传输方法

作者:简简单单 2012-06-05

gzip原本是文件压缩格式,扩展名为.gz,HTTP协议用它来改进WEB应用程序性能,加快HTTP请求返回内容的下载速度,增加用户体验,降低网络带宽占用
apache内置有mod_deflate模块来启用gzip功能,但假如安装apache的时候没有编译相关模块,就需要你手动安装一次,以启用它:
首先到你的apache源码目录,查找到mod_deflate.c文件
Mac及Linux下都可用locate mod_deflate.c
通常位置:apachehttpd源码目录/modules/filters/mod_deflate.c
进入上面找到的目录运行下面的命令:
/usr/local/apache/bin/apxs -i -c -a mod_deflate.c
注:apxs目录请参照您自己的机器,通常在apache安装目录的bin目录下
安装完成,到apache的modules目录看看是不是有了mod_deflates.so,如果有了这个文件,请编辑apache安装目录的conf/httpd.conf配置文件:
LoadModule deflate_module modules/mod_deflate.so
加载mod_deflate.so模块
在httpd.conf里面的站点配置里增加如下内容:
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
第一行代表对什么样的内容启用GZIP压缩,第二行代表压缩级别,第三行代表启用deflate模块对本站点的输出进行GZIP压缩(就是对所有输出启用压缩)
OK,完成拉,重启apache httpd后可以查找一些gzip检测站点进行一下效果,通常压缩率都超过%50,可以有效增加访问速度及站点带宽利用率,Good Luck!
可能碰到的问题:
问题:apache启动后问题,日志里出现mod_deflate.so:undefined symbol:inflateEnd
解决:在LoadModule deflate_module modules/mod_deflate.so之前增加LoadFile /usr/local/lib/libz.so或LoadFile /usr/lib/libz.so
注:具体libz.so位置自己找一下

 

mod_deflate是Apache2中的标准过滤器模块,该模块的功能与mod_gzip的功能一样:压缩网页各类组件,加快网页下载速度。

通常Apache2中增加增加模块都不需要重新编译Apache,只需要动态添加需要的模块就OK了。首先在Apache源安装文件夹的modules文件夹中查找到mod_deflate.c文件……

在Apache2.2.2中,mod_deflate模块在modules/filters文件夹中,确定位置后:

 代码如下 复制代码

[root@localhost modules]# cd /apache-source-install-path/modules/filters

[root@localhost filters]# /apache-installed-path/bin/apxs -i -a -c mod_deflate.c

如果安装成功,则会提示:

chmod 755 /apache-installed-path/modules/mod_deflate.so
[activating module `deflate' in /apache-installed-path/conf/httpd.conf]

此时,打开/apache-installed-path/conf/httpd.conf文件,搜索“mod_deflate”,因该可以看到该模块已经加载上了,如下:

LoadModule deflate_module     modules/mod_deflate.so

既然模块加载上了,那么就可以对需要的内容进行压缩设置了。apache官方有详细的mod_deflate配置说明,以下是我对测试网站做的mod_deflate配置:

 代码如下 复制代码


DeflateCompressionLevel 9   #压缩的级别设置为最高

#将html、文本、xml、php进行压缩
AddOutputFilterByType   DEFLATE text/html text/plain text/xml application/x-httpd-php

# 将html、htm、xml、php、css、js进行压缩
AddOutputFilter         DEFLATE  html  htm  xml  php  css  js

apache2增加mod_deflate压缩模块这样就OK了。当然啦,对httpd.conf做了以上修改,应该保存文件并且重启apache服务。这个时候再通过一些http观察软件查看页面到底有没有进行压缩。以下是我对西北大学测试网站启用mod_deflate进行压缩后的效果截图:

mod_deflate压缩结果
mod_deflate压缩结果

通过实验证明,启用Apache的mod_deflate模块进行网页内容压缩,能够平均将网页大小降到原来的60%左右。尤其是对非图片、非多媒体为主的网站效果更加明显

相关文章

精彩推荐