ATS缓存时间控制插件

源码地址:https://github.com/acache/stateam_trafficserver

stateam_trafficserver

    ats自带的cache.config不适合正向使用,当使用其ttl配置的时候会把range请求也当完整文件缓存,以致后续出现用户请求到非完整文件的错误。因此我们自己写了个修改max-age的插件。可以通过域名、配合状态码来对缓存进行控制。

编译安装
tsxs -c cachecontrol.c -o cachecontrol.so

复制cachecontrol.so和cachecontrol.config配置文件到ats的插件目录下配置plugin.config添加cachecontrol.so即可

cachecontrol.config配置方式
@dest_domain=.* @suffix=jpg|gif|png|flv|mp4|f4v|rar @status=200 @maxage=5184000 

@dest_domain=.* @suffix=.* @status=404 @maxage=120

由于加个@有助于代码处理,所以就这样做了。可以用#号进行注释。

说明

dest_domain、suffix是必须的,status默认是200,maxage默认是86400

由于缓存代理服务器之间会继承age,会导致修改max-age不成功,所以代码中把源返回的header中的date字段删除。

另外

建议配合ats如下选项使用

traffic_line -s proxy.config.http.cache.required_headers -v 2
traffic_line -s proxy.config.http.cache.heuristic_max_lifetime -v 17280000
traffic_line -x
注意

cache.config的配置会覆盖此插件功能,如果使用此插件建议就不用使用cache.config了,除非你已经很清楚它们之间的影响关系。proxy.config.http.cache.heuristic_max_lifetime上面这项的值要设置得不比你设置的maxage小。

关键代码说明
define SUFFIXCOUNT  20   //设置每条配置最多可以匹配多少个文件后缀
define PATTERNCOUNT 20   //设置最多可以有多少条配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值