ats 反向代理和重定向

Posted yx2016542

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ats 反向代理和重定向相关的知识,希望对你有一定的参考价值。

作为反向代理缓存,ats代表源服务器提供的请求。 ats的配置方式使客户端看起来像普通的原始服务器。

了解反向代理缓存
通过转发代理缓存, ats代表请求内容的客户端队里对源服务器的web请求.反向代理缓存(也成服务器加速)不同在于ats 代表存储内容的源服务器充当代理缓存。ats配置为向外作为客户端尝试连接的源服务器。在典型情况下,源服务器的主机名解析为ats服务器,流量服务器直接面向客户端提供服务请求,必要时从真实源服务器获取内容。

反向代理解决方案
有许多中方式将ats配置为反向代理。
1. 降低原始服务器的负载;
2. 在地里位置较远的地区提供有效的服务;
3. 为包含敏感信息的源服务器提供安全性;

HTTP反向代理
通过将 ats服务器用DNS解析为源服务器地址来实现。

处理源服务器重定向响应
源服务器通常会将重定向响应发送回浏览器,将它们重定向到不同的页面。 例如,如果原始
服务器过载,则可能会将浏览器重定向到负载较小的服务器。 当网页移动到不同位置时,源服务
器也会重定向。 当Traffic Server配置为反向代理时,它必须重新发送来自源服务器的重定向,
以便将浏览器重定向到Traffic Server而不是其他原始服务器。

要重新发送重定向,Traffic Server使用反向映射规则。 除非您启用了
proxy.config.url_remap.pristine_host_hdr (默认设置)
否则通常应为每条映射规则设置反向映射规则

使用HTTP请求的映射规则
ats对http反向代理使用了两种类型的映射规则:

map rule
映射规则将客户端请求中的URL转换为内容所在的URL.当ats处于反向代理模式并收到http客户端请求时, 它首先从相关联URL 和header头构造完整的请求URL. 然后, ats 通过将完整请求URL与其在remap.config的目标URL列表进行
比较来查找匹配项。要使请求URL与目标URL匹配,必须满足以下条件:
1. 两个URL的方案必须相同;
2. 两个URL中的主机必须相同。如果请求URL中包含非限定主机名,则它
永远不会与具有完全限定主机名的目标URL匹配;
3. 两个URL中的端口必须相同。如果URL中未指定端口,则使用URL方案的
默认端口。
4. 目标URL的路径部分必须与请求URL路径的前缀匹配;

如果ats找到匹配项,则会将请求URL转换为映射规则中列出的替换URL:
它设置请求URL的主机和路径以匹配替换URL.
如果URL包含路径前缀,则ats将删除与目标路径匹配的路径的前缀,并将其替换为替换URL
中的路径。如果两个映射与请求URL匹配,则ats 将应用remap.config中列出的第一个映射。

reverse-map rule
反向映射规则将源服务器重定向影响中的URL转换为指向ats, 以便将客户端重定向到ats,
而不是直接访问源服务器。

例如, 如果www.molasses.com上的原始服务器上有目录/pub, 并且客户端向/pub发送请求
到该源服务器,则源服务器可能会通过发送Header Location来回复重定向:
http://realhost.com/pub 让客户端知道它所请求的目录,而不是文档(重定向的常见用途是规范
化URL, 以便客户端可以正确地为文档添加书签)

ats使用reverse_map规则来阻止客户(从源服务器接收重定向) 绕过ats 并直接访问源服务器
。在许多情况下,客户端会碰壁,因为realhost.com并不解析给客户端( 例如,因为它在防火墙
屏蔽的端口上运行,或者因为它在不可路由的LAN IP上运行).

映射和反向映射规则都包含目标(原始)URL和替换(目标)URL。在映射规则中,目标URL指向
ats, 替换URL指定原始内容的位置。在反向映射规则中,目标URL指定原始内容的位置,替换
URL指向ats. ats在位于ats配置目录中的remap.config中存储映射规则。

修改remap.config
traffic_ctl config reload

启用HTTP反向代理
要启用http 反向代理,需要设置:
1. CONFIG proxy.config.reverse_proxy.enabled INT 1
2. traffic_ctl config reload

设置可选的HTTP反向代理选项
ats在records.config中提供了几个反向代理配置选项,
1. 配置ats 以在转换期间在请求中保留客户端主机头信息.
proxy.config.url_remap.pristine_host_hdr;

2. 将ats配置为仅向映射规则中列出的源服务器提供请求。因此,不会提供对映射规则中未列出
的原始服务器的请求。
proxy.config.url_remap.remap_required

3. 指定备用URL, 来自较旧客户端的传入请求(例如不提供主机头的传入请求)将定向到该URL.
proxy.config.header.parse.no_host_url_redirect.

重定向HTTP请求
可以将ats配置为重定向http请求,而无需联系任何源服务器。例如,
将http://www.urltraseek.com所有请求重定向到http://www.server1.com/products/portal/search/
,那么www.urltraseek.com的所有http请求都会直接转到
www.server1.com/eproducts/portal/search.

可以将ats配置为执行永久或临时重定向。永久重定向通知浏览器URL(通过返回301状态码),以便浏览器可以更新书签。临时重定向仅向浏览器通知当前请求的URL更改(返回307状态码)

eg.永久重定向www.server1.com的所有http请求到www.server2.com
redirect http://www.server1.com http://www.server2.com





















































以上是关于ats 反向代理和重定向的主要内容,如果未能解决你的问题,请参考以下文章

Nginx 反向代理重定向到帐户/登录

Nginx反向代理:将所有http请求重定向到https

ngrok反向代理

重定向和反向代理的区别

反向代理将 url 重定向到子域

nginx应用 | 反向代理,统一鉴权,目录重定向