LinuxEye - Linux系统教程

LinuxEye - Linux系统教程

当前位置: 主页 > Linux配置 >

CentOS Apache下安装配置mod_pagespeed模块

时间:2013-04-28 10:27来源:未知 编辑:admin 点击:
# 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-page
# 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,将第一行修改为:

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

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

Include conf/pagespeed.conf

之后重启 Apache:
/usr/local/apache2/bin/apachectl -k restart

mod_pagespped模块需要deflate的支持。
如何安装apache的deflate压缩?
关于mod_deflate的详细内容,可以参考:https://linuxeye.com/Linux/412.html

1. 查找模块deflate
find / -name mod_deflate.c

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

2. 安装mod_deflate
/usr/local/apache2/bin/apxs  -i -c -a mod_deflate.c

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
vi /usr/local/apache2/conf/httpd.conf
LoadModule deflate_module     modules/mod_deflate.so

此LoadModule需要放在libphp5.so之后
<IfModule mod_deflate.c>
 DeflateCompressionLevel 7
 AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
 AddOutputFilter DEFLATE css js
</IfModule>

如果遇到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
LoadModule pagespeed_module /usr/local/apache2/modules/mod_pagespeed.so
 
<IfModule !mod_deflate.c>
    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
</IfModule>
<IfModule pagespeed_module>
    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
 
    <Location /mod_pagespeed_statistics>
        Order allow,deny
        Allow from localhost
        SetHandler mod_pagespeed_statistics
    </Location>
</IfModule>
请注意,mod_pagespeed 目前仍然处于 Beta 阶段,据信它会大量执行写操作于 /var/mod_pagespeed/ 以及 Apache 的日志文件,会消耗一定的资源。

转载请保留固定链接: https://linuxeye.com/configuration/1539.html

------分隔线----------------------------
标签:apachemod_pagespee
栏目列表
推荐内容