首页 > ATS中的ComboHandler合并回源插件调研

ATS中的ComboHandler合并回源插件调研

介绍

该插件提供了一种智能方式来将多个URL复合为一个URL,从而将原来的多个响应合并为一个单一的响应。这非常有用,比如说,将多个CSS或js文件合并为一个文件。



源码

目前git中的最新源码已经将comboHandler的内容移到plugins/experimental/esi目录下面了。目前的最新版本是1.2.0



安装

在configure时指定

--enable-experimental-plugins

在build时会生成该库comboo_handler.so。注意该插件需要和ESI模块结合来build和installed,因为它们共享common code





配置

在plugin.config中依次给出下面的参数

1).trigger combo handler的path,默认是"admin/v1/combo"

2).用于认证签名signature verification的key名称,默认是disabled,验证还未实现

3).colon分隔的header列表,假如至少存在一个响应,也会被添加到combo response中

如果这些参数中任何一个写-,则表示将采用默认值,从而该插件的配置项将是

combo_handler.so - - -



像original combohandler一样, 该插件生成形如

http://localhost//

的url,这里默认是"Host" header,除非query parameter中的file path部分使用冒号指定:

http://combo.com/admin/v1/combo?filepath1&dir1:filepath2&filepath3

这会得到下面的3个网页

http://localhost/combo.com/filepath1

http://localhost/dir1/filepath2

http://localhost/combo.com/filepath3

上面的url需要在remap规则中指定要map到的content servers

配置示例

[plugin.config]

combo_handler.so admin/v1/combo



[remap.config]

map http://combo.com             http://os.combo.com  @plugin=combo_handler.so

map http://localhost/combo.com   http://os.combo.com

map http://localhost/dir1        http://os1.combo.com

注意:

1.如果records.config中设置了pristine_host_hdr为1,请求combo源站的Host头将是localhost

2.combo类型的url的最大长度不得超过3000字节,所包含的子请求不得超过30个



从1.1.0以后,这个插件也支持前缀参数。后续文件路径的共同部分能够提取出来并使用p查询参数来单独指定,后续的文件路径参数附加到该前缀后面生成一个完整文件路径。前缀有效期直至被改变或是清除(设为空字符串)。比如下面的query字符串

"/file1&p=/path1/&file2&file3&p=&/file4&p=/dir:path2/&file5&file6"

会得到如下文件路径

/file1

/path1/file2

/path1/file3

/file4

/dir:path2/file5

/dir:path2/file6

参考文献

[1].https://docs.trafficserver.apache.org/en/latest/reference/plugins/combo_handler.en.html

[2]. 源码中的README文件,这个更详细更新

更多相关:

  • ng g s services/http  app.module.ts ... @NgModule({declarations: [...],imports: [...HttpClientModule,//这个很重紧要,没有就会报错],providers: [],bootstrap: [AppComponent] }) expor...

  • set-misc-nginx-module模块是标准的HttpRewriteModule指令的扩展,提供更多的功能,如URI转义与非转义、JSON引述、Hexadecimal/MD5/SHA1/Base32/Base64编码与解码、随机数等等。在后面的应用中,都将会接触使用到这个模块的。该模块是由章亦春先生开发的,他开发的其他模块应用...

  • 该源码包是MySQL-python-1.2.4b4.tar.gz 从2013-06-28以来一直没有更新,注意该网站可以区分访问的终端类型是Windows还是Linux之类的,从而返回的源码包格式不一样。 在CentOS上的安装方法是 http://www.cnblogs.com/jackluo/p/3559978.html...

  • ATS默认提供了对Referer头的http request的防盗链功能,主要应用于图片,对视频等会使用级别更高的防盗链功能,比如事先约定好key,采用md5或HMAC-Sha1算法加密等。 在remap.config中按如下格式设置: map_with_referer client-URL origin-server-URL re...

  • 测试大文件下载 curl -I "http://resource.tsk.erya100.com/TS/flv/TS180/5836/9.flv?t=1430796561727" 单条转发模式in per remap mode 在remap.config中添加一条 map http://resource.tsk.e...

  • 运行elasticsearch5.5.2需要jdk1.8版本以上 1.elasticsearch可以去官网或github下载,window系统推荐zip压缩版 2.解压后 进入bin目录运行elasticsearch.bat启动服务 3.访问localhost:9500测试是否成功 4.安装中文分词插件:https://github...