1、检查模块是否已经安装:
[root@wyq63 ~]# httpd -M | grep deflate
deflate_module (shared)#弹出此种结果,则为 DSO 方式安装的
deflate_module (static)#弹出此种结果,则为编译安装时装的
安装了的话,就可以直接迚行压缩配置了,如果没有安装,下面为安装方法
2、安装deflate模块
a)编译时安装方法
编译的时候跟上--enable-deflate 即可实现安装
b)DSO 方式安装。
扩展:DSO: Dynamic shared object 劢态共享对象 。DSO 模块可以在编译服务器之后编译,也可以
用 Apache 扩展工具(apxs)编译并增加
使用 DSO 方式安装,/usr/local/httpd/bin/apxs 后跟的参数详解
-c 此选项表明需要执行编译操作。它首先会编译 c 源程序(.c)files 为对应的目标代码文件(.c),然
后连接这些目标代码和 files 中其余的目标代码文件(.c 和.a),以生成劢态共享对象 dsofile。如果没有
指定-s 选项,则此输出文件名由 files 中的第一个文件名推测得出,也就是默认 mod_name.so。
-i 此选项表示需要执行安装操作,以安装一个戒多个劢态共享对象到服务器的 modules 目录。
-a 此选项自劢增加一个 LoadModule 行到 httpd.conf 文件中,以激活此模块,或者,如果此行已经
存在,则启用之。
[root@wyq63 filters]# /usr/local/httpd/bin/apxs -c -i -a /usr/local/src/httpd/modules/filters/mod_deflate.c
/usr/local/src/httpd/modules/filters/mod_deflate.c 为源码包路径
安装完后查看:
[root@wyq63 ~]# ll /usr/local/httpd/modules/mod_deflate.so
-rwxr-xr-x. 1 root root 53072 Jan 26 18:36 /usr/local/httpd/modules/mod_deflate.so
注意,此时检测配置文件,会报错:[root@wyq63 ~]# httpd -t
httpd: Syntax error on line 106 of /usr/local/httpd/conf/httpd.conf: Cannot load modules/mod_deflate.so into server: /usr/local/httpd/modules/mod_deflate.so: undefined symbol: inflate
解决方法:vim /usr/local/httpd/conf/httpd.conf
在LoadModule deflate_module modules/mod_deflate.so这一行上面添加 LoadFile /usr/lib64/libz.so即可
3、配置deflate模块
[root@wyq63 ~]# vim /usr/local/httpd/conf/httpd.conf #配置文件最下面添加如下内容
<IfModule mod_deflate.c>
DeflateCompressionLevel 9 #压缩等级,越大效率越高,消耗 CPU 也越高。一般压缩等级使用 6 或 8
SetOutputFilter DEFLATE #启用压缩
DeflateFilterNote Input instream #声明输入流的 byte 数量
DeflateFilterNote Output outstream #声明输出流的 byte 数量
DeflateFilterNote Ratio ratio #声明压缩的百分比
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript #仅压缩,限制特定的 MIME 类型文件
</IfModule>
总结:我们在生产环境中,在使用 mod_deflate 时,一定要注意,对亍太小的文件和某些栺式的图片不要对它们进行压缩,有可能越压越大。
扩展:AddOutputFilterByTypeDEFLATE 后跟的所有的压缩文件类型,后期可以参照选择。
text/plain text/html text/php 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
4、测试使用谷歌的YSLOW插件