日期:2014-05-17  浏览次数:20797 次

apache 2.2.15中配置mod_deflate
  在apache 2下,已经使用了mod_deflate去代替1中的 gzip压缩了,
对css,js,图片,PHP文件等都可以做一个很好的压缩,节省了带宽,但会稍微加大点
CPU的影响,下面小结下:

1 安装
  /usr/local/apache2/bin/apxs -i -c -a APACHE2代码目录/modules/filters/mod_deflate.c
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 。

  安装完后,会在apche2的modules目录下,有mod_deflate.SO的文件

2 在httpd.conf中增加如下
  LoadModule deflate_module modules/mod_deflate.so
  <ifmodule mod_deflate.c>
     DeflateCompressionLevel 9
     AddOutputFilterByType   DEFLATE text/html text/plain text/xml application/x-httpd-php
     AddOutputFilter         DEFLATE  html  htm  xml  php  css  js
</ifmodule>

默认等级是6,而且9级需要更多的CPU时间,用默认的6级就可以了。

要注意的是,在apache 2.2.15中,我用httpd -l看,居然发现mod_deflat已经内置了,所以其实就不用再在httpd.conf中增加loadmodule了,否则会说出错的