启用Apache的deflate模块,能够开启压缩功能,减少网站传输时的带宽。javascript
apache须要编译安装方式,以/usr/local/apache为apache的安装目录,以源码包/usr/local/src/httpd-2.4.33为例php
首先查看/usr/local/apache/bin/apachectl -M ###查看里面的模块是否有deflate模块,也能够过滤一下/usr/local/apache/bin/apachectl -M | grep deflatecss
如有则到httpd.conf下面开启,若是没有显示,或者用grep过滤后显示Syntax OK,则说明模块没有安装。html
以动态共享模块方式(DSO)编译安装deflate模块java
/usr/local/apache/bin/apxs -c -i -a /usr/local/src/httpd-2.4.33/modules/filters/mod_deflate.c #其中前面部分是安装好的apache软件里面的apxs程序,后面是apache的源码安装包里面的deflate压缩模块
apache
apxs程序编译选项:bash
-c 表示执行编译模块操做app
-i 表示执行安装模块操做
ide
-a 表示自动添加一个LoadModule行到httpd.conf文件中,以激活该模块svg
注意:若是提示-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类型文件