历史回顾

网页加速的原理源远流长,最著名的是yahoo的那个《Yahoo! 网站性能最佳体验的34 条黄金守则》,基于此思想,诞生了两个比较有名的网站优化工具,YSlow和Page Speed,它们都系出名门,前者出自Yahoo,后者出自Google,这里我们只谈论pagespeed,它最初是作为Apache的一个网页加速模块mod_pagespeed来使用的,因为性能优越,目前已经被移植到nginx上面,称为nginx_pagespeed

https://github.com/pagespeed/ngx_pagespeed

demo展示页面

http://ngxpagespeed.com/ngx_pagespeed_example/

另外,它也有一个中国版本的远亲,淘宝的开源项目Tengine上也有这个模块的部分移植
     http://tengine.taobao.org/

http://tengine.taobao.org/document_cn/http_concat_cn.html
下面是一些ngx_pagespeed相关的链接
https://blog.hackroad.com/operations-engineer/linux_server/9030.html
http://www.linuxidc.com/Linux/2013-09/89657p2.htm

另外,我注意到ATS中也有一个类似的插件, 参见
      https://github.com/apache/trafficserver/tree/master/plugins/experimental/ats_pagespeed
      http://www.atspagespeed.com/
源码在ats的最新代码plugins/experimental/ats_pagespeed中都有
     https://github.com/apache/trafficserver

下面我们只讨论ats_pagespeed这个模块,并在ATS 5.3.0上对它进行简单的安装和测试。我的ATS安装前缀在/opt/ats下面,并非默认的/usr/local

这里仅是记录一下我的实践报告,以作备忘。
相关提示信息在ats_pagespeed源码中的README文件中,需要单独编译安装该动态库ats_pagespeed.so,同时会生成动态库gzip.so

源码修改

如果不加修改,直接编译,你就会发现如下编译错误


编译之前注意修改子目录gzip下的源码
1).在gzip.cc增加一个头文件
#include "ink_defs.h"


同时在Makefile中指出该头文件所在的源码路径
$(TSXS) -I../../../../lib/ts -o gzip.so -v -C *.cc


2).将源码中的ink_defs.h目录复制到ats_pagespeed.cc相同的目录,删除其中max/min的模板定义
cp /usr/local/src/trafficserver-5.3.0/lib/ts/ink_defs.h  ink_defs.h
在ink_defs.h中修改#include "ink_config.h"

#include "../../../lib/ts/ink_config.h"


修改ats_pagespeed.cc,增加头文件#include "ink_defs.h"


3).配置文件的存放目录在代码ats_pagespeed.cc中被写死为/usr/local/etc/trafficserver/psol,考虑到我们的ats的安装前缀是/opt/ats,而不是默认的/usr/local, 我们需要统一修改为/opt/ats/etc/trafficserver/psol
先查后替换
find ./ -type f | xargs grep "/usr/local/etc/trafficserver"
确定只是ats_pagespeed.cc中需要修改
sed -i "s:/usr/local/etc/trafficserver:/opt/ats/etc/trafficserver:g" ats_pagespeed.cc

编译和安装
make
make install
注意make时会首先下载google的psol静态库包,目前版本是1.8.31.4

配置
在plugin.config中添加如下行
ats_pagespeed.so
gzip.so /opt/ats/etc/trafficserver/gzip.config 
创建两个写死的目录
mkdir -p /tmp/ps_log/
mkdir -p /tmp/ats_ps/
ats_pagespeed的配置文件可以任意命名,这里暂定pagespeed.config,它将存放到写死的目录/opt/ats/etc/trafficserver/psol下面,这个文件夹下面的文件会被监视,当更新时会自动重载

mkdir -p /opt/ats/etc/trafficserver/psol
cd /opt/ats/etc/trafficserver/psol
vim pagespeed.config
下面是pagespeed.config的内容
#[host]                                                                                                                                                                                                                               
[10.10.110.162]
#Force traffic server to cache all origin responses
override_expiry
pagespeed FlushHtml on
pagespeed RewriteLevel CoreFilters
pagespeed EnableFilters rewrite_domains,trim_urls
pagespeed MapRewriteDomain http://10.10.110.162 http://www.foo.com
pagespeed MapOriginDomain http://10.10.110.162 http://www.foo.com
pagespeed EnableFilters prioritize_critical_css,move_css_to_head,move_css_above_scripts
pagespeed EnableFilters fallback_rewrite_css_urls,insert_img_dimensions,lazyload_images,local_storage_cache
pagespeed EnableFilters prioritize_critical_css,rewrite_css
pagespeed EnableFilters combine_javascript,combine_css
这里ip是运行ATS主机的ip,请根据实际情况修改。

下面是gzip.config配置文件的内容(可以参考ats_pagespeed/gzip目录下面的同名文件)
enabled true                          
remove-accept-encoding  false         
cache true                            
                                      
compressible-content-type  text/*     
#compressible-content-type  image/*   
compressible-content-type *javascript*

在records.config中设置
CONFIG proxy.config.url_remap.pristine_host_hdr INT 0

日志
打开调试日志,要求包含这些调试标志
ats_pagespeed* ats-speed, ats-speed-vlog
在records.config中配置如下:
CONFIG proxy.config.diags.debug.enabled INT 1
CONFIG proxy.config.diags.debug.tags STRING regex_revalidate.*|background_fetch.*|ats*

下面是部分日志截图


测试
打开新浪测试
http://finance.sina.com.cn/china/20150530/140422307455.shtml
还是发现个别块出现编码错误的问题,和原来的版本基本没有区别

后续工作

(待续)

参考文献

[1].https://developer.yahoo.com/performance/rules.html       英文版

[2].http://blog.csdn.net/xiaojianpitt/article/details/4393951   中文版

在ATS 5.3.0上测试网页加速插件ats_pagespeed相关推荐

  1. 在ATS 5.3.0上测试域名统计插件channel_stats

    (所有的说明都在README文档中有详细说明,敬请熟读) 编译安装 使用上面的编译选项默认就会将该插件对应的动态库channel_stats.so编译进动态库目录/opt/ats/libexec/tr ...

  2. 在ATS 5.3.0上测试background_fetch插件

    测试大文件下载 curl -I "http://resource.tsk.erya100.com/TS/flv/TS180/5836/9.flv?t=1430796561727" ...

  3. 淘宝教育视频加速观看(在淘宝教育上看学习视频,需要加速,在谷歌浏览器上安装视频加速插件)

    淘宝教育视频加速观看(在淘宝教育上看学习视频,需要加速,在谷歌浏览器上安装视频加速插件) 1.在此网站上下载Video Speed Controller插件 https://extfans.com/ ...

  4. 网页加速插件Decentraleyes使用介绍

    文章背景 作为开发者开发过程中会遇到一些报错,一般我们会去stackoverflow上去搜索解决方案,但是该网站打开速度超级慢,原因是该网站引用了一些google js资源,google 在中国大陆是 ...

  5. CentOS 6.3 64bit上测试ATS 5.3.0中的正则刷新插件regex_revalidate

    注意到ATS源码目录plugin/experimental/下面有regex_revalidate插件目录,我们在编译时添加--enable-experimental-plugins配置项就可以将其编 ...

  6. 在ATS 5.3.0上开启stats_over_http插件

    在plugin.config中添加 stats_over_http.so 然后重启服务器,在浏览器中输入下面的地址查询 http://host:port/_stats 这里host是ATS所在的hos ...

  7. 爆破登录测试网页_预测危险的地震爆破第一部分:EDA,特征工程和针对不平衡数据集的列车测试拆分

    爆破登录测试网页 介绍: (Introduction:) The seismic bumps dataset is one of the lesser-known binary classificat ...

  8. 你是否在Microsoft Edge上测试你的网站?

    Microsoft Edge是浏览器大战中被遗忘已久的成员,自从其基于Chromium以来,Microsoft Edge一直在进行重大改革.在超越Mozilla firefox并成为第二大最常用的浏览 ...

  9. 在rhas3.0上建立一个完整的邮件系统(内含四部分)修正版 V

    http://www.chinaunix.net 作者:llzqq发表于:2004-02-28 07:39:56 rhas3.0+qmail+mysql+smtp+vpopmail+igenus+qm ...

最新文章

  1. 高定位精度的交通标志识别----开源了
  2. openssl qt linux 安装,在Ubuntu 16.04.1上使用OpenSSL构建Qt失败
  3. python读取配置文件 分段_Python3读写ini配置文件的示例
  4. BZOJ 3836 Codeforces 280D k-Maximum Subsequence Sum (模拟费用流、线段树)
  5. 云效 Flow——Java构建并通过云效上传二方库到 Maven 私有仓库
  6. 65. Valid Number
  7. 国内下载 Python 源码特别慢
  8. 你的“大厂梦”不是梦,你离大厂仅差我这篇博客!!!【吐血推荐】
  9. vs 选定内容没有属性页_从智能单品,到全屋智能:2019中国智能家居发展白皮书【附82页PPT】...
  10. 06512oracle数据库,ORA-06512 – 专业Oracle数据库恢复,或许是您恢复数据的最后机会@phone:13429648788 - 专业Oracle数据库恢复技术支持...
  11. 马斯克再创历史!人类首个商业载人飞船发射成功:移民火星又近一步
  12. WSL2.0解决:/bin/bash: xsel: command not found
  13. MSP430 F5529 单片机 OLED 音乐播放器 八音盒 蜂鸣器 音乐
  14. wifi 流量劫持_无线网被流量劫持了怎么弄,WiFi流量被劫持如何处理
  15. 【python】数据挖掘 实验:中国二级城市经纬度聚类分析
  16. 纳米机器人驱动技术提速十万倍
  17. 基于单片机汽车防盗报警系统设计-单片机毕业课程设计
  18. Qt实战案例(54)——利用QPixmap设计图片透明度
  19. php怎么联网,家庭宽带上网连接方式
  20. 要升级win11吗?电脑变板砖的那种

热门文章

  1. poj_3067 树状数组
  2. Codeforces Round #228 (Div. 1)B
  3. Python Tutorial(十):浏览标准库(一)
  4. Ceres入门——Ceres的基本使用方法
  5. mysql表 字段 说明_mysql表字段说明
  6. python删除字典中性别为男_python初学者,用python3实现基本的学生管理系统代码实例...
  7. oracle 的 import,ORACLE import工具参数
  8. vue 后台返回的文件流进行预览_基于 Vue3+Ts 后台前端管理系统Vue3-Admin
  9. c语言以空格分割字符串_C语言: 利用sscanf() 函数分割字符串
  10. python拆分excel的sheet为单文件_python拆分Excel表格并发送邮件