您的位置:首页 > 运维架构 > Apache

linux下apache安装gzip压缩(Deflate模块)

2011-09-05 05:35 435 查看

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

--enable-deflate
--enable-headers


很显然,我这里问题是安装时又未打开,so..我们选择单独编译模块,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>


4. 后记

推荐个在线工具,检查文件gzip压缩:

http://www.port80software.com/products/httpzip/compresscheck

Gzip 压缩对前端性能和带宽影响特别大,我这里实验之后,网页的打开速度提升了50%

http://www.auu.name/442/index.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: