Chinaunix

标题: traffic server的regex_remap怎么用? [打印本页]

作者: cnfavor    时间: 2012-09-03 17:00
标题: traffic server的regex_remap怎么用?
看了半天README,上面说要先写一个map规则,然后再指定一个文件写regex_remap的规则。我想要过滤掉例如http://real-example.com/photo.jpg?id=1234里面URL结尾问号起的部分,求教该如何配置。
作者: aaaaaa    时间: 2012-09-04 10:10
我给内部写的文档如下, FYI:

其中, regex_remap是从master上port过来的, 用来解决去问号, 以及其他变态的
rewrite规则等, 简单说明如下:
如我们希望忽略cdn.zymlinux.net上的?后面的query, 我们只要配置remap.config
配置如下:

map http://cdn.zymlinux.net/ http://zymlinux.net/ @plugin=regex_remap.so @pparam=/tmp/regex_remap.config

并把regex_remap.config配置为:

.* http://source.zymlinux.net/$P

其中$P是URL中的path, 后面不跟query
当然, 这里前面的".*"是可以再进一步细化的, 以达成精细控制的目的. 而这个配
置是可以给每个remap规则配置一个不同的配置文件, 极大的了增强了大家掌控的
便利性.

更详细的说明, 请参照:

https://git-wip-us.apache.org/re ... emap/README;hb=HEAD


怎么玩出彩, 看大家啦
作者: cnfavor    时间: 2012-09-04 16:08
感谢aaaaaa的回复,还是没有十分明白。。。实际上就是要缓存优酷这样的视频网站的文件,用 cacheurl 插件可以把IP地址开头的URL都转换成同样的域名之下(参考您的指南)。但是视频网站还会记录用户播放到什么位置,导致出来一些带问号的地址,于是就缓存了很多一样的内容。

典型的URL格式是 http://a.b.c.d/<something_dynamic>/<filename>.flv?start=<number>

用 cacheurl 插件可以把这样的的URL转换成 http://www.example.com/<something_dynamic>/<filename>.flv?start=<number>

但是在用 regex_remap 的时候出遇到问题,第一是不知道 cacheurl 和 regex_remap 哪个先处理 URL,另一个是 regex_remap 的配置方法还有疑问。

map http://cdn.zymlinux.net/ http://zymlinux.net/ @plugin=regex_remap.so @pparam=/tmp/regex_remap.config

这里面 cdn.zymlinux.net 和 zymlinux.net 分别是什么? regex_remap.config 里的 source.zymlinux.net 又是什么呢?
作者: cnfavor    时间: 2012-09-04 19:03
已经搞定了,继续用cacheurl就行了,aaaaaa您给的样例去不掉优酷地址后面的 ?start=,稍稍改一下就好了。
作者: aaaaaa    时间: 2012-09-05 12:03
cool, 贴出来看看改成啥样啦?
作者: cnfavor    时间: 2012-09-09 13:25
本帖最后由 cnfavor 于 2012-09-09 13:26 编辑

回复 5# aaaaaa


   
http://[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}/youku/.*/(.*-.*-.*-.*-.*\.flv).* http://www.youku.com/$1
http://[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}/youku/.*/(.*-.*-.*-.*-.*\.mp4).* http://www.youku.com/$1


不过这样做还有个问题,会把youku的广告过滤掉,还没有研究如何避免。
作者: tao_627    时间: 2014-02-10 22:51
本帖最后由 tao_627 于 2014-02-10 22:52 编辑

这里面 cdn.zymlinux.net和zymlinux.net分别是什么?regex_remap.config里的source.zymlinux.net又是什么呢?
我们需要搞清楚这个关系,就是
cdn.zymlinux.net  是用户在浏览器地址栏中输入的host部分,也称域名
zymlinux.net      是ATS对上url重新后的url的host部分,比如重写的url是http://zymlinux.net/img/a.png?size=230*450
source.zymlinux.net  是上面重写url重定向后的url的host部分,比如重定向url是http://source.zymlinux.net/$P,这里做了正则匹配,那么就是http://source.zymlinux.net/img/a.png





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2