启用Apache的deflate模块,可以开启压缩功能,减小网站传输时的带宽。


apache需要编译安装方式,以/usr/local/apache为apache的安装目录,以源码包/usr/local/src/httpd-2.4.33为例




首先查看/usr/local/apache/bin/apachectl -M    ###查看里面的模块是否有deflate模块,也可以过滤一下/usr/local/apache/bin/apachectl -M | grep deflate



若有则到httpd.conf下面开启,如果没有显示,或者用grep过滤后显示Syntax OK,则说明模块没有安装。



以动态共享模块方式(DSO)编译安装deflate模块


/usr/local/apache/bin/apxs -c -i -a /usr/local/src/httpd-2.4.33/modules/filters/mod_deflate.c         #其中前面部分是安装好的apache软件里面的apxs程序,后面是apache的源码安装包里面的deflate压缩模块



apxs程序编译选项:

-c 表示执行编译模块操作

-i  表示执行安装模块操作

-a 表示自动添加一个LoadModule行到httpd.conf文件中,以激活该模块


注意:如果提示-bash: /apache/bin/apxs: /replace/with/path/to/perl/interpreter: bad interpreter: No such file or directory。请安装perl,perl-devel

yum install perl perl-devel

安装完成后修改apxs脚本:   vi /usr/local/apache/bin/apxs,将第一行“#!/replace/with/path/to/perl/interpreter -w”修改为#!/usr/bin/perl -w,wq保存退出,然后再次编译该模块



安装完成后,vi /usr/local/apache/conf/httpd.conf中查看该模块是否安装及激活

LoadModule deflate_module            modules/mod_deflate.so


注意:如果启动apache提示httpd: Syntax error on line 105 of /apache/conf/httpd.conf: Cannot load modules/mod_deflate.so into server: /apache/modules/mod_deflate.so: undefined symbol: inflate

则说明deflate模块没有找到zlib的库,可以先安装zlib,zlib-devel

yum install zlib zlib-devel

然后手动在httpd.conf下 加入以下命令

LoadFile /usr/lib64/libz.so   ##libz.so为deflate压缩模块所需要的库文件


<ifmodule mod_deflate.c>

    DeflateCompressionLevel 9  

    SetOutputFilter DEFLATE

    DeflateFilterNote Input instream

    DeflateFilterNote Output outstream

    DeflateFilterNote Ratio ratio

    AddOutputFilterByType    DEFLATE    text/html    text/plain    text/xml    text/css    text/javascript   application/xhtml+xml   application/xml    application/rss+xml     application/atom_xml    application/x-javascript      application/x-httpd-php     image/svg+xml     image/gif    image/png      image/jpe    image/swf    image/jpeg    image/bmp    application/javascript     

</ifmodule>


DeflateCompressionLevel 9 ###压缩等级(1-9),等级越大效率越高,但同时消耗的CPU也高,根据具体情况调优,也可以设置为6来平衡CPU及压缩质量

AddOutputFilterByType  ##仅压缩限制特定的MIME类型文件