之乎者也2011

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

文本页面(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

posted on 2011-09-05 05:35  之乎者也2011  阅读(859)  评论(0编辑  收藏  举报