作为反向代理缓存,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反向代理和重定向的更多相关文章

  1. Nginx 网站域名80 反向代理并且重定向到 tomcat 8080 网站固定页

    配置 server { listen 80 default_server; listen [::]:80 default_server; server_name :127.0.0.1:8080; 反向 ...

  2. 记录Nginx实现内容重定向的两种方式:rewrite和反向代理

    第一种:rewrite server { listen                80; server_name   www.test.org; root                  /te ...

  3. Nginx反向代理中使用proxy_redirect重定向url

    在使用Nginx做反向代理功能时,有时会出现重定向的url不是我们想要的url,这时候就可以使用proxy_redirect进行url重定向设置了.proxy_redirect功能比较强大,其作用是对 ...

  4. nginx 重定向与反向代理

    server{    listen       80;    server_name  dianxi.test.net; #将地址重定向为新的ip地址    #rewrite  "^/env ...

  5. 正向代理 forward proxy、反向代理 reverse proxy、透明代理 transparent proxy nginx反向代理原理和配置讲解 防止外部客户机获取内部内容服务器的重定向 URL 缓存命中

    [大型网站技术实践]初级篇:借助Nginx搭建反向代理服务器 - Edison Chou - 博客园http://www.cnblogs.com/edisonchou/p/4126742.html 图 ...

  6. Nginx特性验证-反向代理/负载均衡/页面缓存/URL重定向

    原文发表于cu:2016-08-25 参考文档: Nginx 反向代理.负载均衡.页面缓存.URL重写等:http://freeloda.blog.51cto.com/2033581/1288553 ...

  7. Nginx安装配置|Nginx反向代理|Nginx支持HTTPS|Nginx重定向

    Nginx安装配置 可以直接看到最下面的HTTPS. Nginx安装 我的系统如下: No LSB modules are available. Distributor ID: Ubuntu Desc ...

  8. ats透明代理

    透明代理是拦截客户端和服务器之间的连接而不可见的代理能力(比如ats). 必须要有一个网关设备,所有网络流量都通过该设备从客户端传递到Internet(或外部云).网关负责有效的将ATS拼接到该流量的 ...

  9. ats 转发代理

    ats是一个通用代理,可配置为反向和转发代理; 转发代理可以用作基础架构中的中央工具来访问web, 它可以与缓存结合使用以降低 总体带宽使用率.转发代理充当本地网络上的客户端浏览器与这些客户端访问的所 ...

随机推荐

  1. Rarfile解压不了的问题

    最近用python调用rarfile进行解压rar压缩包时,报了如下错误: rarfile.RarCannotExec: Unrar not installed? (rarfile.UNRAR_TOO ...

  2. 配置nginx支持TP框架

    TP框架配置中默认URL_MODEL=1,而Nginx默认是不支持PATHINFO的.如果我们只想跑起来tp框架,很简单,只需到更改TP配置,设置URL_MODEL=3(兼容模式).但是如果要让Ngi ...

  3. 等我干IT发财了,就和你离婚。。。。。

    01 “等我干IT发财了,就和你离婚” 他淡淡地说 听完后,她心里暖暖的, 她想,没有比这更天长地久. 海枯石烂的承诺了. ——2018年度最佳微小说奖 02 “等我干IT发财了,我就买房和你结婚.” ...

  4. sdn2017 第三次作业

    1.阅读: 阅读<图解openflow>第一二章(请自己查找相应书籍) 阅读文章:http://www.sdnlab.com/19777.html 阅读<重构网络>第一二章 2 ...

  5. Beta阶段第三次冲刺

    Beta阶段第三次冲刺 严格按照Git标准来,组员有上传Git的才有贡献分没有的为0 代码签入图 1.part1 -站立式会议照片 2.part2 -项目燃尽图 3.part3 -项目进展 1.正在进 ...

  6. PyQt5--GridLayout

    # -*- coding:utf-8 -*- ''' Created on Sep 13, 2018 @author: SaShuangYiBing ''' import sys from PyQt5 ...

  7. PyQt5--Position

    # -*- coding:utf-8 -*- ''' Created on Sep 13, 2018 @author: SaShuangYiBing ''' import sys from PyQt5 ...

  8. sql !=与null

    在写SQL 条件语句是经常用到 不等于‘<>’的筛选条件,此时要注意此条件会将字段为null的数据也当做满足不等于的条件而将数据筛选掉. 例:表A A1  B1 1 0 2 1 3 NUL ...

  9. C语言:值传递,地址传递和引用传递(example:值交换)

    于C语言中值传递.地址传递和引用传递的我个人理解. 通过一个例子:swap(交换两个整型变量的值)来表现! #include <stdio.h> void swap1(int* a,int ...

  10. swift是强类型语言

    swift是强类型语言 所有的变量必须先声明,后使用: 指定类型的变量只能接收类型与之匹配的值. 强类型:变量的类型明确,变量的赋值必须符合类型约束:变量的类型转化必须显式进行. 强类型:类型规则的制 ...