淫荡的一天又开始了!!!

一个让银蛋疼的博客



用PageSpeed给Apache再提速 分享道

[转载]http://www.diovps.com/pagespeed.html

网络巨头Google向来很大方,给站长们免费提供过不少好东西,比如基于Google服务器云集群的字体API,比如JS库。合理应用这些资源,能极大的提升网站速度,加快页面载入速度。当然,提速提速再提速,永远是站长们不变的话题。在这里,再介绍一个提速的好东西,PageSpeed,这原来是Google布署于自家服务器上的独门技术,如今免费提供给站长们使用。

事实上,PageSpeed已知有三个版本:A,用于检测页面优化质量并提供可行性建议的PageSpeed,包括浏览器插件(支持Firefox和Chrome)和在线版本;B,布署在服务器环境上的PageSpeed,用于对Apache引擎的加速优化;C,专门针对开发者的工具SDK。更详细的信息请到Google官方查看Doc文件!

本博主要立足于VPS交流与推荐,所以在这里要介绍的是B版本。PageSpeed的安装需要服务器的root权限,也只适用于VPS或独立服务器。

以军哥的Lnmp生产环境为例,在Centos32位环境下,实战安装PageSpeed,进行VPS优化。

 


PageSpeed功能介绍

它有两大特点,一是自行对网络传输的html字节优化和压缩传输,再一个就是自动智能缓存,加速下载,具体功能特点如下:

 

  1. 缓存扩展;
  2. 压缩处理CSS;
  3. 优化javascript最大限度的减少重复请求;
  4. 自动缓存CSS;
  5. JavaScript内嵌技术,内建Javascript核心,有效载荷尺寸最小化;
  6. 压缩空白;
  7. 合并头信息;
  8. 附加属性;
  9. 优化图像下载;
  10. 跳过非法字符;
  11. 重写优化CSS;

 

关于pagespace是否真正有用,我想就不用多讨论了吧?Dreamhost和(狗大爹)Godaddy都在自己的服务器上全面布署的东西,不会是银样蜡枪头。

PageSpeed的安装需求

优点说了那么多,跃跃欲试是肯定的。那么,什么样的环境才能体验到它强大的加速功能呢?

首先是系统环境,从目前来看,它仅支持32位或64位的两个Linux发行版本,分别是Centos和Ubuntu——真巧,我选择了军哥的Lnmp举例,瞄得太准了,真是躺着都中枪。Lnmp0.7也恰恰支持在Centos和Ubuntu系统中自动安装。

其次,它要求Apache的版本不能低于2.2,军哥的lnmp0.7没问题,但还在使用2.1的朋友,如果想加入到PageSpeed的队伍中来,是时候考虑升级一下Apache了。

最后,安装PageSpeed还需要加载mod_deflate模块的全局gzip压缩。遗憾的是,军哥的lnmp默认并没有安装启用mod_deflate模块,需要你自行安装。

 


CentOS安装mod_deflate启用GZIP压缩
 
军哥的lnmp一键安装脚本是没有为apache安装mod_deflate模块的,而要安装Google提供的超级优化工具PageSpeed,mod_deflate是基本条件。这玩意儿有用吗?事实是,在安装了 PageSpeed 之后,本博的载入速度提升了差不多40%左右,并且在VPS的使用过程中,不管是自己建站,还是搭建VPS生产环境,也不论是在独立服务器还是便宜VPS上,都非常轻松搞定。
关于VPS优化Apache利器PageSpeed的具体介绍和在VPS环境中的安装教程,请到此一游!
逻辑是这样的:要安装 PageSpeed ,先要安装mod_deflate,而要安装mod_deflate,则要在编译安装apache时选择安装它并启用,或者在安装好apache之后再重新编译httpd添加这一模块。
军哥lnmp一键安装脚本,完整版中自带apache httpd安装包,精简版中则是安装过程中自动下载。
本教程以军哥lnmp0.7版为例,详细介绍如何获取httpd安装包并安装mod_deflate,启用Apache的GZIP压缩优化。
 

第一步,先找到httpd安装包

如前所述,军哥完整版lnmp,httpd版本为2.2.17,安装包在这个位置:

  1. /root/lnmp0.7-full/httpd-2.2.17.tar.gz

直接解压

  1. cd /root/lnmp0.7-full
  2. tar zvfx httpd-2.2.17.tar.gz

如果你没有军哥完整版的lnmp,可以下载:

  1. wget -c http://soft.vpser.net/lnmp/lnmp0.7-full.tar.gz

或者直接到httpd官方下载2.2.19版:

  1. wget –c http://labs.renren.com/apache-mirror//httpd/httpd-2.2.19.tar.gz

然后解压

  1. tar zvfx httpd-2.2.19.tar.gz

第二步,找到deflate模块

军哥lnmp0.7完整版的位置是在

  1. /root/lnmp0.7-full/httpd-2.2.17/modules/filters/mod_deflate.c

而下载版的当然也一样

  1. /root/httpd-2.2.19/modules/filters/mod_deflate.c

如果你不确定mod_deflate.c在哪里,可以通过finr或locate命令查找

  1. find /root/httpd-2.29 –name mod_deflate.c
  1. locate /root/httpd-2.2.19 mod_deflate.c

第三步,确认apache apxs所在路径,并安装mod_deflate

军哥的lnmp是已经编译过apache的,它的apxs路径是在

  1. /usr/local/apache/bin/apxs

通常情况下,比如直接下载的httpd,它是在

  1. /usr/local/apache2/bin/apxs

好了,现在回到第二步中找到的deflate.c的目录

  1. cd /root/lnmp0.7-full/httpd-2.2.17/modules/filters

安装mod_deflate到第三步确认的apxs所在目录:

  1. /usr/local/apache/bin/apxs –i –c –a mod_deflate.c

解析一下三个参数:

-i ,表示需要执行操作,安装一个或多个动态共享对象到服务器的moudules目录;

-a ,自动增加一个LoadModule行到httpd.conf文件中,以激活或启用此模块;

或者用-A,不过会在行前附加一个前缀#注释掉该行,不予起效;

-c ,表示希望执行编译操作;

如果你不是如此例中在军哥lnmp上操作,而是新安装apache,直接加上下行即可:

  1. --enable-headers –enable-deflate

第四步,加载mod_deflate.so文件

安装完成之后,去apache的modules目录里看看,是不是多了一个mod_deflate.so文件。

如果有,不嫌麻烦的可以祭出vi了(反正我是用不惯),编辑如下文件:

  1. vi /usr/local/apache/conf/httpd.conf

像我这种懒人,还是用 WinSCP 登录到VPS之后,用常见的文本编辑器操作。

先查找一下,是不是已经挂载了mod_deflate.so,因为前面我们加了-a参数,应该已经自动添加。

如果没有,则手动将这一行添加到其中:

  1. LoadModule deflate_module modules/mod_deflate.so

第五步,配置mod_deflate

做完第四步,再将以下代码段,加入到httpd.conf文件中的适当位置:

  1. <ifmodule mod_deflate.c>
  2. DeflateCompressionLevel 9
  3. SetOutputFilter DEFLATE
  4. #DeflateFilterNote Input instream
  5. #DeflateFilterNote Output outstream
  6. #DeflateFilterNote Ratio ratio
  7. #LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
  8. #CustomLog logs/deflate_log.log deflate
  9. </ifmodule>

稍微解释一下

第一行是设定压缩级别,这个嘛,见仁见智,我是喜欢极端的9;

第二行,是设置对站点所有输出内容启用GZIP压缩;

当然,你也可以再添加下面一行:

  1. AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript

即,设定对哪类型的文件进行压缩传输

如果将上述代码段中的#都去掉,则是允许在logs/deflate_log.log记录日志,可以查看到压缩前后的变化。

比如“GET /index.html HTTP/1.1″ 55416/551237 (34%)”,分别是压缩前后字节数及压缩比。

第六步,重启Apache

在军哥lnmp环境中,重启命令为:

  1. /etc/init.d/httpd restart

如果不是在lnmp环境,你可能得使用httpd默认的命令

  1. service httpd restart

补充问题说明

一,重启apache后,日志里出现mod_deflate.so:undefined symbol:inflateEnd错误提示。

解决办法:回头看本文第四步,找到加入到httpd.conf文件中的这一行:

  1. LoadModule deflate_module modules/mod_deflate.so

在它前面,再加入下面这一行:

  1. LoadFile /usr/local/lib/libz.so

或者这一行:

  1. LoadFile /usr/lib/libz.so

这个得看你的libz.so的具体路径。

二,重启apache之后,如何查看mod_deflate是否已生效并启动压缩?

你可能去Google搜索一些提供GZIP检测功能的站点进行测试,看看效果,通常压缩率都超过50%;

你也可以用最简单的办法测试一下,FTP从服务器上拖一个文件到本地,然后再拖回去。如已生效,在覆盖服务器上原文件时,会提示本地的文件比服务器上的文件个头要大。

好了,教程结束。


一步一步安装PageSpeed

重要信息:按照官方安装说明,在军哥lnmp上是无法安装的,lnmp的Apache版本确实是2.2,但rpm安装时就是不认。

首先是下载rpm文件,可以手动,也可以在SSH中wget,我采用第二种方法,以下是命令,每行一条:

 

  1. # cd /usr/local/src
  2. # wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_i386.rpm
  3. # mkdir mod-pagespeed
  4. # cd mod-pagespeed
  5. # rpm2cpio ../mod-pagespeed-beta_current_i386.rpm | cpio –idmv
  6. # cp ./etc/httpd/conf.d/pagespeed.conf /usr/local/apache/conf/
  7. # cp ./usr/lib/httpd/modules/mod_pagespeed.so /usr/local/apache/modules/
  8. # chmod 755 /usr/local/apache/modules/mod_pagespeed.so
  9. # mkdir /var/mod_pagespeed/{cache,files} –p
  10. # chown nobody:nobody /var/mod_pagespeed/*

 

搞完了上面的命令之后,用文本编辑器打开(用vi也完全没问题,只要你愿意)

 

  1. /usr/local/apache/conf/pagespeed.conf

 

将第一行修改为

 

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

 

注意上面的路径,军哥的lnmpmod_pagespeed.so文件是上述路径,如果你的不一样,请自行修改。

然后编辑Apache的配置文件/usr/local/apache/conf/httpd.conf

在合适的位置加入下面这一句以引入pagespeed模块

 

  1. Include "/usr/local/apache/conf/pagespeed.conf"

 

然后重启Apache

 

  1. /etc/init.d/httpd restart

 

如果安装及配置正确的话,现在你的服务器运行环境就开始利用Google的PageSpeed进行加速了。


  2011, July 7, 4:00 AM [0] 评论 (3483 views)

上一篇 | 下一篇
发表评论

评论内容 (必填):


浏览本博请不要用淫荡的眼神和思想,谢谢合作
Browse this blog, please do not use the lustful eyes and thought, thank you

  


搜索文章

高级搜索

实用链接

站长工具

规则转换

在线翻译 云输入法 IP归属在线查询 --在线偷窥-- 云网盘