linux apache安装gzip压缩模块Deflate的方法

发布时间:2020-05-23编辑:脚本学堂
linux下apache如何安装gzip压缩模块,为节省带宽一般会对页面进行压缩,apache中当然要用gzip压缩模块了,这里介绍了使用Deflate 模块配置gzip压缩的方法,供大家参考。

apache安装gzip压缩模块Deflate

在文本页面(htm/css/js)启用gzip压缩后,一般可以压缩70%阁下。
即50K的文件,实际只需传输15K到客户端,由客户端解压显示,如许可有效进步前端机能。别的,实践证实,启用Gzip压缩后,不会对搜索引擎收录有影响。要开启gzip压缩,在 apache2.x 版本以上,需开启 Deflate 模块和 headers 模块。事实上,Apache2.x系列已经内置了这两个模块,是以,只须要安装时打开即可:
apache安装gzip压缩模块Deflate

--enable-deflate  
--enable-headers 

安装时又未打开,选择零丁编译模块,mod_deflate.c 在源文件目次的modules/filters下,mod_hearders.c 则在 modules/metadata目次下。
1. 安装 mod_hearders
 

# cd /home/changyou/httpd.2.2.14/modules/metadata/
# /usr/local/web/apache/bin/apxs -i -c -a mod_deflate.c

apxs号令参数申明:
-i  此选项默示须要履行安装操纵,以安装一个或多个动态共享对象到办事器的modules目次中
-a  主动增长LoadModule行到httpd.conf文件中,以激活此模块,若是此行已经存在,则启用
-A  与 -a 选项类似,然则它增长的LoadModule号令有一个井号前缀(#),即此模块尚未启用
-c  此选项默示须要履行编译操纵。它起首会编译(.c)源法度为对应的目标代码文件(.o),然后连接这些目标代码和files中其余的目标代码文件(.o和.a),以天活泼态共享对象.so文件
-o  若是没有指定,则此输出文件名由files中的第一个文件名获得,也就是默认为mod_name.so

报错:
 

chmod 755 /usr/local/web/apache/modules/mod_deflate.so
chmod: cannot access `mod_deflate.so’: No such file or directory

意思是没有.so文件,所以须要gcc一下
 

# gcc -shared -o mod_headers.so mod_headers.o
# cp mod_headers.so /usr/local/web/apache/modules/
# /usr/local/web/apache/bin/apxs -i -a -c mod_headers.c

2. 安装 mod_deflate
 

# /usr/local/web/apache/bin/apxs -i -c -a mod_deflate.c

同样也报上方“No such file or directory”错误
 

# gcc -shared -o mod_deflate.so mod_deflate.o
# cp mod_deflate.so /usr/local/web/apache/modules/
# /usr/local/web/apache/bin/apxs -i -a -c mod_deflate.c

3. 设备 mod_deflate
在 httpd.conf 中添加so,而我这里因为在 apxs 时用了 -a 参数,所以so文件已被主动接洽关系
 

LoadModule deflate_module     modules/mod_deflate.so 
LoadModule headers_module     modules/mod_headers.so 

其实安装deflate时mod_headers并不是必须的,为什么安装呢?主如果应用了header模块来确保不会发送错误的内容。

最后在设备文件里参加以下代码,好开启gzip:
 

复制代码 代码示例:
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
AddOutputFilter DEFLATE css js 

或者:
 

复制代码 代码示例:
<IfModule mod_deflate.c> 
 DeflateCompressionLevel 7 
 AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php 
 AddOutputFilter DEFLATE css js 
</IfModule>