ATS中的动态回源插件stale-while-revalidate调研
简而言之,stale-while-revalidate会对freshness采取一定的灵活性(在乎你的控制)来向client隐藏back-end延迟,更多细节参见RFC5861.该插件支持两种功能
stale-while-revalidate和stale-if-error
安装
在configure时指定
--enable-experimental-plugins
在build时会生成该库并安装到插件动态库目录libexec/traffficserver下面
配置
在plugin.config中添加一行
stale_while_revalidate.so
当然后面可以添加不同参数来记录不同的日志
--log-all enable all logging
--log-stale-while-revalidate enable logging of stale-while-revalidate
--log-stale-if-error enable logging of stale-if-error
--log-filename set the filename to log to (.log)
并重启服务器
trafficserver restart
测试该插件的Node.js服务器
源码中有个test_server.js文件,它是一个测试服务器,它的原理是:
在127.0.0.1:8081端口监听http请求,返回具有如下响应头的http response
Cache-Control: max-age=864000, stale-while-revalidate=1728000