Chinaunix首页 | 论坛 | 博客
  • 博客访问: 709670
  • 博文数量: 139
  • 博客积分: 7607
  • 博客等级: 少将
  • 技术积分: 1964
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-11 23:43
个人简介

...

文章分类

全部博文(139)

文章存档

2012年(53)

2011年(4)

2010年(29)

2009年(10)

2008年(33)

2007年(10)

分类: LINUX

2012-04-03 11:23:08

01
02
03
04
05
06
07
08
09
10
11
12
# 32位
# wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_i386.rpm
# 64位
# https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_x86_64.rpm
# mkdir mod-pagespeed
# cd mod-pagespeed
# rpm2cpio ../mod-pagespeed-beta_current_i386.rpm | cpio -idmv
# cp ./etc/httpd/conf.d/pagespeed.conf /usr/local/apache2/conf/
# cp ./usr/lib/httpd/modules/mod_pagespeed.so /usr/local/apache2/modules/
# chmod 755 /usr/local/apache2/modules/mod_pagespeed.so
# mkdir /var/mod_pagespeed/{cache,files} -p
# chown nobody:nobody /var/mod_pagespeed/*

mod_pagespeed 需要 Apache 加载 mod_deflate(一个将 web 内容 gzip 压缩后传输的模块)。

之后用你习惯的编辑器打开 /usr/local/apache/conf/pagespeed.conf,将第一行修改为:

1
LoadModule pagespeed_module /usr/local/apache2/modules/mod_pagespeed.so

编辑 /usr/local/apache/conf/httpd.conf 在开头的 Include 部分加入:

1
Include conf/pagespeed.conf

之后重启 Apache:

1
/usr/local/apache2/bin/apachectl -k restart

mod_pagespped模块需要deflate的支持。
如何安装apache的deflate压缩?
关于mod_deflate的详细内容,可以参考

1. 查找模块deflate

1
find / -name mod_deflate.c

一般都在安装目录下,这里我的模块在/root/build/httpd-2.2.17/modules/filters/mod_deflate.c

1
cd /root/build/httpd-2.2.17/modules/filters/mod_deflate.c

2. 安装mod_deflate

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

3. 配置mod_deflate

1
2
vi /usr/local/apache2/conf/httpd.conf
LoadModule deflate_module     modules/mod_deflate.so

此LoadModule需要放在libphp5.so之后

1
2
3
4
5
 DeflateCompressionLevel 7
 AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
 AddOutputFilter DEFLATE css js
? TEXT
1 2 如果遇到httpd: Syntax error on line 419 of /web/apache2/conf/httpd.conf: module deflate_module is built-in and can't be loaded 解决方案:出现这个情况,表明deflate_module模块是内建的,不用再调入,所以只需要把LoadModule *** 注释就可以了

压缩等级的调整有两种说法,不过懒得研究了,默认等级是6,890k的文件压缩出来的数据和最高的9级只差1k,而且9级需要更多的CPU时间,用默认的6级就可以了。

另外,有个Real-Time Compression Check工具,可以检测某个URL是否是压缩传输的。好像这家公司做IIS下的zip压缩程序,所以弄了这么个在线工具。只要输入你的地址,回车,就可 以看到服务器类型、是否是压缩传输以及压缩前和压缩后的大小比较。大多数情况下html代码都能压缩到1/4~1/3,gzip压缩传输还是很不错的。

如果是新安装apache,直接加上 –enable-headers –enable-deflate 即可

配置mod_pagespeed

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
LoadModule pagespeed_module /usr/local/apache2/modules/mod_pagespeed.so
 
    LoadModule deflate_module /usr/local/apache2/modules/mod_deflate.so
    DeflateCompressionLevel 6
    AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
    AddOutputFilter DEFLATE css js
    ModPagespeed ON
    AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER text/html
    ModPagespeedFileCachePath            "/var/mod_pagespeed/cache/"
    ModPagespeedGeneratedFilePrefix      "/var/mod_pagespeed/files/"
 
    #保留页面中原有格式,注释的话会把包含的js引入到页面中
    ModPagespeedRewriteLevel PassThrough
    ModPagespeedEnableFilters add_instrumentation
 
    #不把图片转换成二进制格式
    ModPagespeedDisableFilters rewrite_images
    #压缩JS
    ModPagespeedEnableFilters rewrite_javascript
    ModPagespeedEnableFilters collapse_whitespace,elide_attributes
 
    
        Order allow,deny
        Allow from localhost
        SetHandler mod_pagespeed_statistics
    

效果展示:

请注意,mod_pagespeed 目前仍然处于 Beta 阶段,据信它会大量执行写操作于 /var/mod_pagespeed/ 以及 Apache 的日志文件,会消耗一定的资源。

阅读(1316) | 评论(0) | 转发(0) |
0

上一篇:tcp/ip调优

下一篇:利用squid加速apache

给主人留下些什么吧!~~