一.mod_pagespeed介绍
mod_pagespeed是一个适用于apache httpd的模块,由google发布的开源代码,目前只支持apache2.2版本,可以自动完成优化工作,包括优化缓存,减少客户端服务器之间的通讯,降低负载等等。
部署mod_pagespeed不用修改任何程序,安装完成后重启apache,一切前端问题自动优化。CDN服务商Cotendo已在其CDN服务器上部署mod_pagespeed以加速客户网站访问,图片文件大小经自动压缩可减少20%-30%,页面加载时间最多可缩短50%。GoDaddy也宣布将在其客户网站服务器上广泛部署mod_pagespeed。
mod_pagespeed功能:
1.Optimize Caching优化缓存
Extend Cache扩展缓存
Outline CSS
Outline JavaScript
2.Minimize Round Trip Times最大限度地减少往返时间
Combine CSS 合并CSS
Inline CSS 内嵌CSS
Inline JavaScript 内嵌JavaScript
3.Minimize Payload Size最小化有效载荷尺寸
Collapse Whitespace 压缩空白
Combine Heads 合并头信息
Elide Attributes 省略属性
Minify Javascript 缩小Javascript
Optimize Images 优化图片
Remove Comments 删除注释
Remove Quotes 删除引用
Rewrite CSS 重写CSS
Move CSS to HEAD 加载CSS到head
Add Head
Add Instrumentation
二.mod_pagespeed安装
从源码安装mod_pagespeed
需要的环境:apache版本2.2以及以上
g++版本4.2以及以上
subversion
make
依赖关系:
安装depot_tools,用来建立多个开源项目与其它开源项目的依赖关系。
1
2
3
|
# mkdir ~/bin
# cd ~/bin
# svn co http://src.chromium.org/svn/trunk/tools/depot_tools
|
将depot_tools加入到PATH路径中
1
|
# exportPATH=$PATH:~/bin/depot_tools
|
下载mod_pagespeed并解除依赖关系:
1
2
3
4
|
# mkdir ~/mod_pagespeed
# cd ~/mod_pagespeed
#gclient config http://modpagespeed.googlecode.com/svn/tags/0.9.11.5/src
#gclient sync --force //下载mod_pagespeed源码文件
|
编译mod_pagespeed:
1
2
|
# cd ~/mod_pagespeed/src
# make V=1
|
安装mod_pagespeed:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# cd install consolas
# vim Makefile //更改有关apache路径
APACHE_ROOT
=
/
usr
/
local
/
apache2
.
2.15
APACHE_MODULES
=
$
(
APACHE_ROOT
)
/
modules
APACHE_DOC_ROOT
=
/
www
APACHE_CONTROL_PROGRAM
=
/
usr
/
local
/
apache2
.
2.15
/
bin
/
apachectl
STAGING_DIR
=
/
tmp
/
mod_pagespeed
.
install
MOD_PAGESPEED_FILE_ROOT
=
/
usr
/
local
/
apache2
.
2.15
/
mod_pagespeed
APACHE_USER
=
nobody
APACHE_CONF
=
$
(
APACHE_ROOT
)
/
conf
/
extra
# make staging
rm
-
rf
/
tmp
/
mod_pagespeed
.
install
mkdir
-
p
/
tmp
/
mod_pagespeed
.
install
sed
-
e
s
@
APACHE_DOC_ROOT
@
/
www
@
g
\
-
e
s
!
@
@
MODPAGESPEED_CACHE
_ROOT
\
@
@
!
/
usr
/
local
/
apache2
.
2.15
/
mod_pagespeed
!
g
\
-
e
"s@# ModPagespeedSlurpDirectory ... \
@#ModPagespeedSlurpDirectory ...@g"
-
e
"s@#
ModPagespeedSlurpReadOnly on@#ModPagespeedSlurpReadOnly on@g"
\
-
e
"s@^#STRESS.*@@"
common
/
pagespeed
.
conf
.
template
\
debug
.
conf
.
template
>
/
tmp
/
mod_pagespeed
.
install
/
pagespeed
.
conf
sed
-
e
s
@
HOSTNAME
@
132file
@
g
-
e
s
@
APACHE
_MODULES
\
@
/
usr
/
local
/
apache2
.
2.15
/
modules
@
g
proxy
.
conf
.
template
>
\
/
tmp
/
mod_pagespeed
.
install
/
proxy
.
conf
echo
"LoadModule \
pagespeed_module /usr/local/apache2.2.15/modules/mod_pagespeed.so"
\
>
/
tmp
/
mod_pagespeed
.
install
/
pagespeed
.
load
echo
"LoadModule deflate_module /usr/local/apache2.2.15/modules/mod_deflate.so"
\
>>
/
tmp
/
mod_pagespeed
.
install
/
pagespeed
.
load
cp
-
rp
mod_pagespeed_example
/
tmp
/
mod_pagespeed
.
install
cp
.
.
/
out
/
Release
/
libmod_pagespeed
.
so
/
tmp
/
mod_pagespeed
.
install
/
mod_pagespeed
.
so
# make install
mkdir
-
p
/
usr
/
local
/
apache2
.
2.15
/
mod_pagespeed
/
cache
mkdir
-
p
/
usr
/
local
/
apache2
.
2.15
/
mod_pagespeed
/
files
chown
-
R
nobody
/
usr
/
local
/
apache2
.
2.15
/
mod_pagespeed
cat
/
tmp
/
mod_pagespeed
.
install
/
pagespeed
.
load
\
/
tmp
/
mod_pagespeed
.
install
/
pagespeed
.
conf
\
>
/
usr
/
local
/
apache2
.
2.15
/
conf
/
extra
/
pagespeed
.
conf
rm
-
rf
/
www
/
mod_pagespeed_example
cp
-
r
/
tmp
/
mod_pagespeed
.
install
/
mod_pagespeed_example
/
www
chown
-
R
nobody
/
www
/
mod_pagespeed_example
cp
/
tmp
/
mod_pagespeed
.
install
/
mod_pagespeed
.
so
/
usr
/
local
/
apache2
.
2.15
/
modules
# vim httpd.conf
Include
conf
/
extra
/
pagespeed
.
conf
# make stop start
sudo
/
usr
/
local
/
apache2
.
2.15
/
bin
/
apachectl
stop
sudo
/
usr
/
local
/
apache2
.
2.15
/
bin
/
apachectl
start
|
检查mod_pagespeed模块是否加载成功:
1
2
3
|
# ./apachectl -t -D DUMP_MODULES | grep pagespeed
Syntax
OK
pagespeed_module
(
shared
)
|
三.监视mod_pagespeed状态信息:
http://ip/mod_pagespeed_statistics