一、反向代理模式
remap是ATS做URL rewrite的方式,也是ATS在配置文件设计方面的特殊部分。从功能上来讲,ATS的remap更像一个精简版本的Apache Httpd的rewrite模块。remap之所以重要,是因为它定义了一个很方便的API入口,我们可以通过remap系统,编写remap插件。
这里map的第一个http表示是User-Agent去访问网页的请求url,第二个http表示ATS去获取源的url,整行的意思是,将dns的ip解析为新浪新闻主页;
这里reverse_map的这一行表示将新浪新闻源站返回的域名转成ip再响应给代理用户
$ sudo traffic_line -x(这个命令使所有的配置文件重新加载,当修改了集群中的某一个节点的配置的时候,Traffic server会自动将更改应用到集群的其他节点。)
下面摘自赵永明在CU上的帖子(链接见参考网址1):
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规则配置一个不同的配置文件, 极大的了增强了大家掌控的便利性.
这里面 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
更详细的说明, 请参照:
https://git-wip-us.apache.org/re ... emap/README;hb=HEAD
四、remap.config配置文件的说明(部分翻译)
使用remap.config允许你完成两件事情:
1)在发送给源服务器(Origin Server)之前,重写客户端发送的URL,
2)保护你的代理服务器,只允许某些请求通过
使用ATS默认的配置文件,至少要求配置一个remap规则,但是,这可以通过修改records.config中的下面的配置选项放松条件:
CONFIG proxy.config.url_remap.remap_required INT 0
支持的6种mapping规则如下:
map
map_with_referer
map_with_recv_port
reverse_map
redirect
redirect_temporary
这几种map类型都支持正则表达式匹配,同时使用regex_的前缀,但是有一些限制:
1)只有host域支持正则表达式, scheme,port和其它的field不支持
2)子模式的匹配个数只能最大到9,这意味着$0-$9能用于替换占位符,$0表示整个输入字符串
3)扩展字符串中的替换个数限制到10
下面是map支持正则表达式的一个例子:
上面的9条规则可以用下面的一条正则匹配表示:
regex_map http://d([1-9]).sina.com.cn/ http://d$1.sina.com.cn/ @plugin=regex_remap.so @pparam=maps.reg @pparam=profile
这里http://d([1-9]).sina.com.cn/可以表示上面的9个域名,$1表示匹配到的1-9中的某个数字
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...
public bool IsPhone(string input){string pattern = "^\(0\d{2}\)[- ]?\d{8}$|^0\d{2}[- ]?\d{8}$|^\(0\d{3}\)[- ]?\d{7}$|^0\d{3}[- ]?\d{7}$";Regex re...