首页 > ATS 5.3.0中parent.config配置文件解读

ATS 5.3.0中parent.config配置文件解读

该博文翻译自参考文献[1]

parent.config

parent.config文件识别用在缓存分级中的父代理,用这个文件去执行下面的配置:

  • 搭建父分级缓存,兼容多父级缓存和父级缓存故障转移
  • 配置指定的URL请求避开父代理缓存
仅当父缓存选项开启后,ATS才能使用parent.config文件。

当你修改parent.config文件后,运行traffic_ctl config reload命令去让变更生效。当你对集群中的一个节点更新配置时,ATS会自动将配置更新应用到集群中的所有其它的节点。



格式

parent.config中每行必须包含一个parent caching rule,ATS识别三个空格分隔的标签:

primary_destination=value secondary_specifier=value  action=value

下表给出了primary_destination的目标和它们的允许值:

dest_domain

请求的域名和子域名

dest_host

请求主机名

dest_ip

请求的IP地址或是IP地址范围,使用短杠-分隔

url_regex

URL中的正则表达式(regex)





secondary specifiers在parent.config中可选,可能的指示符和允许的值如下:

port

请求URL的端口

scheme

       请求URL的协议:http或https

prefix

请求URL的path前缀

suffix

请求URL的path后缀

method

请求URL的方法,可以为get,post,put,trace中之一

time

父缓存服务请求的时间段,比如 08:00-14:00,这个功能太牛逼了

src_ip

client的IP地址

internal

       布尔值true或false,指定该规则是match还是not match一个来自内部API(也就是插件自身触发的)的transaction,比如background_fetch插件发送的http请求





下表给出了可能的actions和它们允许的值

parent

父服务器列表,假如请求不能被列表中的最后一个父服务器处理,将会直接回源,可以使用域名或是IP地址指定,但必须指定端口号

round_robin

下列值之一:

true  ATS基于client IP地址轮询方式遍历父缓存

strict ATS严格依照次序处理请求,比如proxy1服务第一个请求,proxy2服务第二个请求,等等

false  禁用轮询父缓存方法

consistent_hash  url一致性hash,以便于一个给定url只有一个父缓存服务,假如一个父缓存宕机,ATS会跳过该宕机的父缓存去重新对剩下的父缓存们做一致性hash,

                 其它流量不受影响,一旦宕机的父缓存再次可用时,流量分布会重回宕机前的状态

go_direct

下列两个值之一:

true  请求会跳过父级缓存直接回源

false 请求不跳过父级缓存,按正常思路走呗



示例

下面的规则配置了一个一子两父(p1.x.com和p2.x.com)的分级缓存,ATS会转发它不能serve的请求到父服务器p1.x.com和p2.x.com,使用轮询方式

round_robin=true

dest_domain=. method=get parent="p1.x.com:8080; p2.y.com:8080" round_robin=true

round_robin=consistent_hash

dest_domain=. method=get parent="p1.x.com:8080|1.0; p2.y.com:8080|2.0" round_robin=consistent_hash



下面的规则配置了ATS将所有含有正则表达式politics和path为/viewpoint的请求直接到源站(跳过任何父级缓存):

url_regex=politics prefix=/viewpoint go_direct=true



注意

parent.config中 每行必须包含parent=或go_direct=指示符



参考文献

[1].https://docs.trafficserver.apache.org/en/latest/reference/configuration/parent.config.en.html

更多相关:

  • (给DotNet加星标,提升.Net技能)转自:HueiFengcnblogs.com/yyfh/p/12361255.html前言本章将介绍客户端缓存将介绍浏览器缓存和服务端缓存,使用浏览器缓存将减少对web服务器的请求次数,同时可以提升性能,避免重复的运算浪费。ASP.NET Core对于HTTP缓存分为两种:客户端(浏览器缓...

  • 事先说明 标题说是“坑”,并没有说是“bug”,也就是多半是玩的姿势不对。 线上问题 我司(lecloud)目前线上大小文件都是使用的ATS 6.2.1版本,昨天运维反馈有文件超过缓存时间并不回源刷新,截图如下: 现象就是:age超过max-age了,过期了不更新! 另外需要说的一点就是,源站是可以正常回源的。 复...

  • 将追加的主题 内存常驻副本(resident alternates)缓存对象刷新(object refresh) 缓存一致性(Cache Consistency) ATS缓存是完全一致性的,除非你不小心踢掉电源,让ATS突然关机。如果要禁用硬盘驱动器自身的缓存,你需要使用下面的命令 hdparm -W0 缓存系统会校验可用...

  • ATS名词术语 副本(alternate) 缓存对象(cache object)的一种变体,最初创建该术语是为了处理HTTP协议中的VARY机制(RFC2616#sec14.44),现在多用于其它的目的。一个对象的所有副本必须以某种方式等价,也就是说,它们是同一个流的等价形式,最常用的一个例子就是,一个流既有普通版本也有压缩版本。...

  • 限流器是后台服务中十分重要的组件,在实际的业务场景中使用居多,其设计在微服务、网关、和一些后台服务中会经常遇到。限流器的作用是用来限制其请求的速率,保护后台响应服务,以免服务过载导致服务不可用现象出现。限流器的实现方法有很多种,例如 Token Bucket、滑动窗口法、Leaky Bucket等。在 Golang 库中官方给我们提供...

  • HTTP和HTTPSHTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法。HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层。SSL(Secure...

  •     注意!!!(修改于2020年7月18日)   在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据 报错截图如下 报错内容: {"message": "Network Error","name": "Error","stack": "Err...

  • 一.  GET_POST与开发者工具 1.      浏览器的基本工作规则 浏览器请求访问服务器,服务器返回数据 (1)    请求的格式 GET:长度不能大于2k参数明文显示在地址栏,不保密,通常用在查询请求 POST:长度可以很大,参数写在请求体内,相对保密,通常用是提交内容的请求 上图中a.com是域名,x...

  • JSP相当于在HTML页面中加上Java代码,一般在标签中放入主要代码。 在JSP里用<%...%>把Java代码包含起来的。   Servlet的生命周期: ①被服务器实例化后,容器运行init方法。 ②当请求(Request)到达时,运行service方法,service方法会运行与请求对应的doXXX方法(d...

  • 我的博客上已经有很多这样的ats安装实录了,这次的笔记有些不一样,因为它是ATS目前最新的LTS版本6.2.1的安装,写出来更多的是整理自己的思路,因为很多东西搞过不整理,过一段时间就完全忘记掉了。 安装环境: 在rMBP 15.4上上面安装了VMware Fushion 专业版8.5.1,操作系统是MacOS Sierra 10...

  • 2011年我曾有机会精心研究了ATS Cache Module部分的大部分源码,也绘制了一些蹩脚的图片,但是对比专家和大牛的作品还相去甚远,下面的图片摘自Fall Summit 2014中的ATS committer Alan M. Carroll的ppt,仅作研读ATS源码时作参考和对照,更是对高手极致境界的尊崇和反思。...

  • 转载自https://blog.zymlinux.net/index.php/archives/129 首先申明本人是个实实在在的菜鸟,现在也只是搭建起来ats玩玩简单的,写本文只是为了给完全的小白一个参考而已。 本人刚开始接触ats的时候,从ats安装到配置也遇到了很多基本的问题,在查阅资料解决不了的时候基本都是豪哥耐心...

  • 转载自 https://blog.zymlinux.net/index.php/archives/540 ATS插件开发需要提前了解ATS的插件的一些设计思想,以及系统提供的一些不同方向。我们将会介绍ATS的基础开发知识,以利于后续的插件开发课程讲解。 ATS的SDK文档,是了解ATS的核心设计、接口设计的很重要资料,甚至是老...