Linux下安装mod_deflate启用Apache的GZIP压缩

操作系统:Linux Cent OS 5 / Max OS X 10.6 snow leopard
相关环境:Apache httpd 2.2.15 
安装版本:apache httpd 2.2.15内置mod_deflate
 
gzip原本是文件压缩格式,扩展名为.gz,HTTP协议用它来改进WEB应用程序性能,加快HTTP请求返回内容的下载速度,增加用户体验,降低网络带宽占用
 
apache内置有mod_deflate模块来启用gzip功能,但假如安装apache的时候没有编译相关模块,就需要你手动安装一次,以启用它:
  1. 首先到你的apache源码目录,查找到mod_deflate.c文件
    Mac及Linux下都可用locate mod_deflate.c
    通常位置:apachehttpd源码目录/modules/filters/mod_deflate.c 
  2. 进入上面找到的目录运行下面的命令:
    /usr/local/apache/bin/apxs -i -c -a mod_deflate.c
    注:apxs目录请参照您自己的机器,通常在apache安装目录的bin目录下 
  3. 安装完成,到apache的modules目录看看是不是有了mod_deflates.so,如果有了这个文件,请编辑apache安装目录的conf/httpd.conf配置文件:
    LoadModule deflate_module modules/mod_deflate.so
    加载mod_deflate.so模块 
  4. 在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!

可能碰到的问题:

  1. 问题: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位置自己找一下