在ATS 5.3.0上测试网页加速插件ats_pagespeed
歷史回顧
網(wǎng)頁加速的原理源遠(yuǎn)流長,最著名的是yahoo的那個《Yahoo!?網(wǎng)站性能最佳體驗的34?條黃金守則》,基于此思想,誕生了兩個比較有名的網(wǎng)站優(yōu)化工具,YSlow和Page Speed,它們都系出名門,前者出自Yahoo,后者出自Google,這里我們只談?wù)損agespeed,它最初是作為Apache的一個網(wǎng)頁加速模塊mod_pagespeed來使用的,因為性能優(yōu)越,目前已經(jīng)被移植到nginx上面,稱為nginx_pagespeed
https://github.com/pagespeed/ngx_pagespeed?
demo展示頁面?
http://ngxpagespeed.com/ngx_pagespeed_example/
另外,它也有一個中國版本的遠(yuǎn)親,淘寶的開源項目Tengine上也有這個模塊的部分移植
?????http://tengine.taobao.org/
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上對它進(jìn)行簡單的安裝和測試。我的ATS安裝前綴在/opt/ats下面,并非默認(rèn)的/usr/local
這里僅是記錄一下我的實踐報告,以作備忘。
相關(guān)提示信息在ats_pagespeed源碼中的README文件中,需要單獨編譯安裝該動態(tài)庫ats_pagespeed.so,同時會生成動態(tài)庫gzip.so
源碼修改
如果不加修改,直接編譯,你就會發(fā)現(xiàn)如下編譯錯誤
編譯之前注意修改子目錄gzip下的源碼
1).在gzip.cc增加一個頭文件
#include "ink_defs.h"
同時在Makefile中指出該頭文件所在的源碼路徑
$(TSXS) -I../../../../lib/ts -o gzip.so -v -C *.cc
2).將源碼中的ink_defs.h目錄復(fù)制到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,而不是默認(rèn)的/usr/local, 我們需要統(tǒng)一修改為/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靜態(tài)庫包,目前版本是1.8.31.4
配置
在plugin.config中添加如下行
ats_pagespeed.so
gzip.so /opt/ats/etc/trafficserver/gzip.config?
創(chuàng)建兩個寫死的目錄
mkdir -p /tmp/ps_log/
mkdir -p /tmp/ats_ps/
ats_pagespeed的配置文件可以任意命名,這里暫定pagespeed.config,它將存放到寫死的目錄/opt/ats/etc/trafficserver/psol下面,這個文件夾下面的文件會被監(jiān)視,當(dāng)更新時會自動重載
mkdir -p /opt/ats/etc/trafficserver/psol
cd /opt/ats/etc/trafficserver/psol
vim pagespeed.config
下面是pagespeed.config的內(nèi)容
#[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主機(jī)的ip,請根據(jù)實際情況修改。
下面是gzip.config配置文件的內(nèi)容(可以參考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中設(shè)置
CONFIG proxy.config.url_remap.pristine_host_hdr INT 0
日志
打開調(diào)試日志,要求包含這些調(diào)試標(biāo)志
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
還是發(fā)現(xiàn)個別塊出現(xiàn)編碼錯誤的問題,和原來的版本基本沒有區(qū)別
后續(xù)工作
(待續(xù))
參考文獻(xiàn)
[1].https://developer.yahoo.com/performance/rules.html ? ? ? 英文版
[2].http://blog.csdn.net/xiaojianpitt/article/details/4393951 ? 中文版
總結(jié)
以上是生活随笔為你收集整理的在ATS 5.3.0上测试网页加速插件ats_pagespeed的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ATS中的动态回源插件stale-whi
- 下一篇: 在ATS 5.3.0上测试域名统计插件c