Apache 添加模块 gzip配置

由于在编译apache时没有加一些参数,只能另外添加安装:

$ cd /data/super/httpd-2.2.21/modules/filters
$ /usr/local/apache2/bin/apxs -i -c -a mod_deflate.c
$ cd /data/super/httpd-2.2.21/modules/metadata
$ /usr/local/apache2/bin/apxs -i -a -c mod_headers.c
$ ls /usr/local/apache2/modules
httpd.exp  libphp5.so  mod_deflate.so  mod_headers.so

apxs命令参数说明:
-i 此选项表示需要执行安装操作,以安装一个或多个动态共享对象到服务器的modules目录中。
-a 此选项自动增加一个LoadModule行到httpd.conf文件中,以激活此模块,或者,如果此行已经存在,则启用之。
-A 与 -a 选项类似,但是它增加的LoadModule命令有一个井号前缀(#),即此模块已经准备就绪但尚未启用。
-c 此选项表示需要执行编译操作。它首先会编译C源程序(.c)files为对应的目标代码文件(.o),然后连接这些目标代码和files中其余的目标代码 文件(.o和.a),以生成动态共享对象dsofile 。如果没有指定 -o 选项,则此输出文件名由files中的第一个文件名推测得到,也就是默认为mod_name.so 。

Ps:如果是新安装apache,参数加上 –enable-headers –enable-deflate 就可以了

开启gzip压缩配置

$ vim /usr/local/apache2/conf/httpd.conf
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
<IfModule mod_deflate.c>
        DeflateCompressionLevel 3  # 压缩程度的等级
        AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript
        AddOutputFilter DEFLATE css js
        SetOutputFilter DEFLATE  # 插入过滤器
        # 不压缩图片等格式文件
        SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
        SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
        SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
</IfModule>

发表评论