DDR爱好者之家 Design By 杰米

一.mod_pagespeed介绍
mod_pagespeed是一个适用于apache httpd的模块,由google发布的开源代码,可以自动完成优化工作,包括优化缓存,减少客户端服务器之间的通讯,降低负载等等。部署mod_pagespeed不用修改任何程序,安装完成后重启apache,一切前端问题自动优化。CDN服务商Cotendo已在其CDN服务器上部署mod_pagespeed以加速客户网站访问,图片文件大小经自动压缩可减少20%-30%,页面加载时间最多可缩短50%。GoDaddy也宣布将在其客户网站服务器上广泛部署mod_pagespeed。
mod_pagespeed项目主页:https://developers.google.com/speed/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 HTTP Server在服务网站资源时,mod_pagespeed module中的每种优化措施都被放到了可自定义的过滤器中。有些过滤器会直接的修改HTML内容,而另外一些过滤器会调整页面中引用的CSS,JavaScript和图片,从而构造出一种更优化的页面。
四、mod_pagespeed的安装
mod_pagespeed目前支持Apache和Nginx。Apache中简单的安装方法如下。安装完成之后,它会在yum里新建一个安装源,之后通过yum update更新就可以了。
Centos/Fedora下安装:
复制代码 代码如下:#32位
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.rpm
#64位
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm
yum install at
rpm -U mod-pagespeed-*.rpm

Debina/Ubuntu下安装:
复制代码 代码如下:
#32位
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.deb
#64位
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.deb
dpkg -i mod-pagespeed-*.deb

重启httpd:
复制代码 代码如下:services httpd restart
查看pagespeed是否加载:
复制代码 代码如下:httpd -M|grep pagespeed

五、mod_pagespeed的配置
一般在安装成功后,不需要任何配置就可以正常用,当然,如果你有更高的要求,可以参考以下内容。

1.创建配置文件
复制代码 代码如下:vi /usr/local/apache/conf/pagespeed.conf #新建配置文件,请根据自己需求修改
LoadModule pagespeed_module /usr/local/apache/modules/mod_pagespeed_ap24.so
<IfModule pagespeed_module>
    ModPagespeed on
    ModPagespeedInheritVHostConfig on
    AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER text/html
    ModPagespeedFileCachePath            "/var/cache/mod_pagespeed/"
    ModPagespeedFileCacheInodeLimit        500000
    ModPagespeedAvoidRenamingIntrospectiveJavascript on
    ModPagespeedEnableFilters collapse_whitespace
    <Location /mod_pagespeed_beacon>
          SetHandler mod_pagespeed_beacon
    </Location>
    <Location /mod_pagespeed_statistics>
        Order allow,deny
        Allow from localhost
        Allow from 127.0.0.1
        SetHandler mod_pagespeed_statistics
    </Location>
    ModPagespeedMessageBufferSize 100000

    <Location /mod_pagespeed_message>
        Allow from localhost
        Allow from 127.0.0.1
        SetHandler mod_pagespeed_message
    </Location>
</IfModule>
2.使用配置文件
复制代码 代码如下:
mkdir -p /var/mod_pagespeed/    #创建配置文件中配置的缓存目录
chown -R www.www /var/mod_pagespeed/
echo 'Include conf/pagespeed.conf' /usr/local/apache/conf/httpd.conf
/usr/local/apache/bin/apachectl  -t  #测试配置文件
Syntax OK
service httpd restart #重启apache
六、mod_pagespeed的高级应用
mod_pagespeed中有一系列的默认的优化选项(filter),在安装完成之后自动打开,只需要重启一下Apache就可以看到效果了。

基础的优化都已包含了,比如压缩CSS和Javascript、延长资源的过期时间、重写图片等,如果还想进一步优化,可以考虑几下选项:
1.remove_comments:删除源文件中的注释。绝大多数情况下,注释对于终端用户都是不可见的,删掉之后不影响浏览。而且mod_pagespeed可以识别出IE的条件注释而不去动它。
2.collapse_whitespace:删除源文件中的空白字符,同上,不影响浏览。
3.insert_dns_prefetch:指引浏览器提前进行DNS解析,如果你的博客中引用了其它站点的图片,比如本博客使用Google Cloud Storage作为图床,增加这个选项,可以让浏览器预先解析Cloud Storage的DNS,这样可以加速图片的下载速度。
增加选项需要修改/etc/httpd/conf.d/pagespeed.conf文件,并添加如下的代码。注意修改完之后依然需要重启Apache。
复制代码 代码如下:ModPagespeedDisableFilters remove_comments,collapse_whitespace
另外,如果你的网站启用了HTTPS,你需要对HTTPS进行特殊的设置,因为HTTPS中通讯是加密的,mod_pagespeed无法得知其中的内容。设置也就一句话:
复制代码 代码如下:ModPagespeedMapOriginDomain http://jb51.net https://jb51.net
都搞定之后,刷新一下页面看看效果吧。
七、临时禁用PageSpeed组件
在调试网站的时候,有时候需要禁用缓存组件,这样才可以看到最新的改动。这个时候Page Speed组件可能会变成一个障碍,它并不能及时地发现原始文件有所改变,从而重新进行缓存。
当然,禁用它也很简单,甚至连SSH都用不上。只需要在需要调试的URL后面加上参数ModPagespeed=off,比如这样:
复制代码 代码如下:http://jb51.net/?ModPagespeed=off
就可以访问到没有经过Page Speed优化过的网页,如果你仔细看源文件,可以发现一些差别。

DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。