在ATS 5.3.0上测试网页加速插件ats_pagespeed
历史回顾
网页加速的原理源远流长,最著名的是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/
另外,我注意到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相关推荐
- 在ATS 5.3.0上测试域名统计插件channel_stats
(所有的说明都在README文档中有详细说明,敬请熟读) 编译安装 使用上面的编译选项默认就会将该插件对应的动态库channel_stats.so编译进动态库目录/opt/ats/libexec/tr ...
- 在ATS 5.3.0上测试background_fetch插件
测试大文件下载 curl -I "http://resource.tsk.erya100.com/TS/flv/TS180/5836/9.flv?t=1430796561727" ...
- 淘宝教育视频加速观看(在淘宝教育上看学习视频,需要加速,在谷歌浏览器上安装视频加速插件)
淘宝教育视频加速观看(在淘宝教育上看学习视频,需要加速,在谷歌浏览器上安装视频加速插件) 1.在此网站上下载Video Speed Controller插件 https://extfans.com/ ...
- 网页加速插件Decentraleyes使用介绍
文章背景 作为开发者开发过程中会遇到一些报错,一般我们会去stackoverflow上去搜索解决方案,但是该网站打开速度超级慢,原因是该网站引用了一些google js资源,google 在中国大陆是 ...
- CentOS 6.3 64bit上测试ATS 5.3.0中的正则刷新插件regex_revalidate
注意到ATS源码目录plugin/experimental/下面有regex_revalidate插件目录,我们在编译时添加--enable-experimental-plugins配置项就可以将其编 ...
- 在ATS 5.3.0上开启stats_over_http插件
在plugin.config中添加 stats_over_http.so 然后重启服务器,在浏览器中输入下面的地址查询 http://host:port/_stats 这里host是ATS所在的hos ...
- 爆破登录测试网页_预测危险的地震爆破第一部分:EDA,特征工程和针对不平衡数据集的列车测试拆分
爆破登录测试网页 介绍: (Introduction:) The seismic bumps dataset is one of the lesser-known binary classificat ...
- 你是否在Microsoft Edge上测试你的网站?
Microsoft Edge是浏览器大战中被遗忘已久的成员,自从其基于Chromium以来,Microsoft Edge一直在进行重大改革.在超越Mozilla firefox并成为第二大最常用的浏览 ...
- 在rhas3.0上建立一个完整的邮件系统(内含四部分)修正版 V
http://www.chinaunix.net 作者:llzqq发表于:2004-02-28 07:39:56 rhas3.0+qmail+mysql+smtp+vpopmail+igenus+qm ...
最新文章
- 高定位精度的交通标志识别----开源了
- openssl qt linux 安装,在Ubuntu 16.04.1上使用OpenSSL构建Qt失败
- python读取配置文件 分段_Python3读写ini配置文件的示例
- BZOJ 3836 Codeforces 280D k-Maximum Subsequence Sum (模拟费用流、线段树)
- 云效 Flow——Java构建并通过云效上传二方库到 Maven 私有仓库
- 65. Valid Number
- 国内下载 Python 源码特别慢
- 你的“大厂梦”不是梦,你离大厂仅差我这篇博客!!!【吐血推荐】
- vs 选定内容没有属性页_从智能单品,到全屋智能:2019中国智能家居发展白皮书【附82页PPT】...
- 06512oracle数据库,ORA-06512 – 专业Oracle数据库恢复,或许是您恢复数据的最后机会@phone:13429648788 - 专业Oracle数据库恢复技术支持...
- 马斯克再创历史!人类首个商业载人飞船发射成功:移民火星又近一步
- WSL2.0解决:/bin/bash: xsel: command not found
- MSP430 F5529 单片机 OLED 音乐播放器 八音盒 蜂鸣器 音乐
- wifi 流量劫持_无线网被流量劫持了怎么弄,WiFi流量被劫持如何处理
- 【python】数据挖掘 实验:中国二级城市经纬度聚类分析
- 纳米机器人驱动技术提速十万倍
- 基于单片机汽车防盗报警系统设计-单片机毕业课程设计
- Qt实战案例(54)——利用QPixmap设计图片透明度
- php怎么联网,家庭宽带上网连接方式
- 要升级win11吗?电脑变板砖的那种
热门文章
- poj_3067 树状数组
- Codeforces Round #228 (Div. 1)B
- Python Tutorial(十):浏览标准库(一)
- Ceres入门——Ceres的基本使用方法
- mysql表 字段 说明_mysql表字段说明
- python删除字典中性别为男_python初学者,用python3实现基本的学生管理系统代码实例...
- oracle 的 import,ORACLE import工具参数
- vue 后台返回的文件流进行预览_基于 Vue3+Ts 后台前端管理系统Vue3-Admin
- c语言以空格分割字符串_C语言: 利用sscanf() 函数分割字符串
- python拆分excel的sheet为单文件_python拆分Excel表格并发送邮件