apache的deflate模块

如何安装apache的deflate压缩

Apache2 推荐使用 mod_deflate 压缩,mod_gzip适合apache1.x

关于mod_deflate的详细内容,可以参考http://httpd.apache.org/docs-2.0/mod/mod_deflate.html


1. 查找模块deflate

find /backup/soft/httpd-2.2.4 -name mod_deflate.c

cd /backup/soft/httpd-2.2.4/modules/filters

2. 安装mod_deflate

/usr/local/apache224/bin/apxs  -i -c -a mod_deflate.c

apxs命令参数说明:
-i  此选项表示需要执行安装操作,以安装一个或多个动态共享对象到服务器的modules目录中。
-a  此选项自动增加一个LoadModule行到httpd.conf文件中,以激活此模块,或者,如果此行已经存在,则启用之。
-A  与 -a 选项类似,但是它增加的LoadModule命令有一个井号前缀(#),即此模块已经准备就绪但尚未启用。
-c  此选项表示需要执行编译操作。它首先会编译C源程序(.c)files为对应的目标代码文件(.o),然后连接这些目标代码和files中其余的目标代码文件(.o和.a),以生成动态共享对象dsofile 。如果没有指定 -o 选项,则此输出文件名由files中的第一个文件名推测得到,也就是默认为mod_name.so 。
 
如果是新安装apache,直接加上  --enable-headers --enable-deflate 即可

3. 配置mod_deflate

vi /usr/local/apache224/conf/httpd.conf
LoadModule deflate_module     modules/mod_deflate.so

此LoadModule需要放在libphp5.so之后

<IfModule mod_deflate.c>
 DeflateCompressionLevel 7
 AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
 AddOutputFilter DEFLATE css js
</IfModule>


压缩等级的调整有两种说法,不过懒得研究了,默认等级是6,890k的文件压缩出来的数据和最高的9级只差1k,而且9级需要更多的CPU时间,用默认的6级就可以了。

另外,有个Real-Time Compression Check工具,可以检测某个URL是否是压缩传输的。好像这家公司做IIS下的zip压缩程序,所以弄了这么个在线工具。只要输入你的地址,回车,就可 以看到服务器类型、是否是压缩传输以及压缩前和压缩后的大小比较。大多数情况下html代码都能压缩到1/4~1/3,gzip压缩传输还是很不错的。

 

apache增加mod_deflate压缩模块

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配置:

<IfModule mod_deflate.c>
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
</IfModule>

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

mod_deflate压缩结果

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值