如果您的业务需要根据请求的属性(域名、路径等)或请求中包含的数据信息(HTTP标头、Cookie等)来进行流量分发和处理,您可以自定义监听的转发策略。监听会根据转发策略对访问请求执行不同的转发动作。本文为您介绍转发策略功能原理以及如何添加、管理转发策略。
转发策略原理
转发策略类型
转发策略分为默认转发策略和自定义转发策略:
默认转发策略:创建监听后,系统自动创建一条默认转发策略并关联到默认终端节点组。一个监听中只有一条默认转发策略,且默认转发策略不支持调整优先级、修改和删除。
自定义转发策略:创建监听后,您可以根据实际需求手动创建自定义转发策略。一个监听中可以创建多个自定义转发策略,且多个自定义转发策略可调整优先级。
转发策略组成
每条转发策略均包含转发条件和转发动作两个部分,访问请求只有匹配所有的转发条件后,才会执行对应的转发动作。
监听协议类型不同,支持的转发条件和转发动作不同:
监听协议类型 | 转发条件 | 转发动作 |
TCP或UDP | 域名 | 转发至、丢弃(阻断流量) |
HTTP或HTTPS | 域名、路径、HTTP标头、HTTP请求方法、Cookie、SourceIP、查询字符串 | 转发至、重定向至、返回固定响应、重写、写入Header、删除Header、丢弃(阻断流量) |
如果您的标准型全球加速实例仅支持配置域名和路径类型转发条件,以及转发至类型转发动作,不支持其他类型的转发条件和转发动作,可能是由于实例版本不支持。如需使用,请向商务经理申请升级实例。
如果您的标准型全球加速实例不支持为TCP或UDP监听添加转发策略,可能是由于实例版本不支持。如需使用,请向商务经理申请升级实例。
转发策略匹配规则
访问请求会按照自定义转发策略的优先级顺序(转发策略编号的数值越小,优先级越高)逐条匹配:
如果可匹配当前自定义转发策略(即满足所有转发条件),立即执行当前自定义转发策略的所有转发动作。
如果不能匹配当前自定义转发策略,则开始匹配次优先级自定义转发策略。
访问请求未能匹配任何自定义转发策略时,将执行默认转发策略(优先级最低),将访问请求转发至默认终端节点组。
如果TCP或UDP监听存在多个默认终端节点组时,默认转发策略会根据多终端节点组的流量调配规则进行转发。更多信息,请参见多终端节点组流量调配原理及应用场景。
路径如果配置为/*
,表示匹配所有路径的请求。如果您需要一条兜底的转发规则用于处理非预期的请求,转发条件中路径可以配置为/*
,转发动作配置为返回固定响应,状态码设置为404或403,配置完成后将该转发规则拖拽至倒数第二位置即可。
前提条件
您已经创建了标准型全球加速实例。具体操作,请参见创建和管理标准型全球加速实例。
全球加速实例为包年包月付费模式时,请确保您已经购买并绑定了基础带宽包。
您已经添加了智能路由类型监听。具体操作,请参见添加和管理智能路由类型监听。
添加转发策略
您可以通过以下步骤添加自定义转发策略,对匹配策略的请求执行对应的转发动作。
登录全球加速管理控制台。
在实例列表页面,找到目标全球加速实例,在操作列单击配置监听。
在监听页签,找到目标监听,然后单击监听ID。
在监听详情页面,单击转发策略页签。
在转发策略页签,单击插入新策略,根据以下信息配置转发策略,然后单击确定。
HTTP或HTTPS监听的转发策略
参数
说明
策略名称
自定义转发策略的名称。
如果(条件全部匹配)
选择转发条件类型。您还可以单击+添加转发条件添加多个转发条件。
域名:输入一个或多个域名。支持精准域名、通配符域名、正则表达式域名。关于域名配置规则的更多信息,请参见转发条件的域名配置规则。
一个转发策略内只支持创建一个域名类型转发条件,该转发条件内支持配置多个域名,多个域名间为“或”关系。
示例:*.example.com
路径:输入一条或多条路径。支持精准路径、通配符路径、正则表达式路径。关于路径配置规则的更多信息,请参见转发条件的路径配置规则。
一个转发策略内支持创建多个路径类型转发条件,多个路径类型转发条件间为“或”关系;一个路径类型条件内支持配置多个路径,多个路径间为“或”关系。
示例:URL为
www.example.com/test/test1?x=1&y=2
时可配置为/test/*。HTTP标头:在键是字段输入HTTP标头的名称,值是字段输入HTTP标头的内容,可添加多个HTTP标头值。一个转发策略内支持创建多个HTTP标头类型转发条件,多个HTTP标头类型转发条件间为“与”关系,且多个HTTP标头键不能重复;一个HTTP标头类型转发条件内支持配置多个HTTP标头值,且多个HTTP标头值不能重复。
示例:键是user-agent,值是*Mozilla/4.0*。
HTTP请求方法:选择HTTP请求方法,包括HEAD、GET、POST、OPTIONS、PUT、PATCH、DELETE。一个转发策略内只支持创建一个HTTP请求方法类型转发条件,该转发条件内支持配置多个HTTP请求方法,多个HTTP请求方法间为“或”关系。
Cookie:输入一个或多个Cookie。一个转发策略内支持创建多Cookie类型转发条件,多个Cookie类型转发条件间为“与”关系;一个Cookie类型条件内支持配置多个Cookie键值对,多个Cookie键值对间为“或”关系。
示例:key:value。
SourceIP:输入一个或多个IP地址或者IP地址段。一个转发策略内只支持创建一个SourceIP类型转发条件,该转发条件内支持配置多个IP地址或IP地址段,多个IP地址或IP地址段之间为“或”关系。
示例:IP地址例如1.1.XX.XX/32,IP地址段例如2.2.XX.XX/24。
查询字符串:输入一个或多个查询字符串。一个转发策略内支持创建多个查询字符串类型转发条件,多个查询字符串类型转发条件间为“与”关系;一个查询字符串类型条件内支持配置多个字符串键值对,多个字符串键值对间为“或”关系。
示例:URL为
www.example.com/test/test1?x=1&y=2
时可配置为x:1或y:2。
那么转发动作是
选择转发动作类型。您还可以单击+添加动作添加多个转发动作。
说明一个转发规则必须包含有一条转发至、重定向至或返回固定响应类型的转发动作,以保证客户端的请求不会中断转发动作。
一个转发策略中最多只能有一条转发至、重定向至或返回固定响应类型的转发动作。
若一个转发策略中存在重写、写入Header、删除Header类型的转发动作,必须同时配置一条转发至类型的转发动作,且顺序必须在转发至类型的转发动作之前。
转发至:选择目标虚拟终端节点组。
重定向至:选择协议和状态码并输入跳转的目的主机、端口、路径和查询字符串。其中,协议、主机、端口、路径、查询不能全部为空或者默认值。
重定向至中关于路径的增强配置规则,请参见重写和重定向中路径的增强配置规则。
返回固定响应:输入响应状态码,然后选择响应正文类型并输入响应正文。
重写:分别输入跳转的目标域名、路径和查询字符串。
重写中关于路径的增强配置规则,请参见重写和重定向中路径的增强配置规则。
写入Header:在键是字段输入HTTP标头名称,值是字段输入HTTP标头的内容。输入信息将覆盖请求中已有的头变量。写入Header中的HTTP标头键不能重复,也不能和删除Header中的HTTP标头键重复。
删除Header:输入HTTP标头名称。删除Header中的HTTP标头键不能重复,也不能和写入Header中的HTTP标头键重复。
丢弃(阻断流量):直接丢弃访问流量。
TCP和UDP监听的转发策略
重要为TCP或UDP监听添加转发策略时,需确保流量转发到的后端服务为HTTPS服务,否则添加的转发策略不生效。
参数
说明
策略名称
自定义转发策略的名称。
如果(条件全部匹配)
配置转发条件类型。仅支持域名类型。
域名类型转发条件支持精准域名、通配符域名、正则表达式域名。关于域名配置规则的更多信息,请参见转发条件的域名配置规则。
示例:*.example.com
您还可以单击+添加域名添加多个域名类型转发条件,多个域名间为“或”关系。
那么转发动作是
选择转发动作类型。
一个转发策略中最多只能有一条转发至或丢弃(阻断流量)类型的转发动作。
转发至:选择目标默认终端节点组或虚拟终端节点组。
丢弃(阻断流量):直接丢弃访问流量。
您可以单击继续插入策略,一次添加多条转发策略。
如果您需要添加多个转发策略,可继续单击插入新策略进行添加。
更多操作
不支持对默认转发策略进行编辑、调整优先级、删除操作。
操作 | 说明 |
编辑转发策略 | 在转发策略页签,找到目标转发策略,将鼠标悬浮至右上角并单击出现的图标,编辑转发策略,然后单击保存。 |
调整转发策略优先级 | 转发策略按照优先级从高到低开始匹配,数值越小优先级越高。您可以随时更改自定义转发策略的优先级,不能更改默认转发策略的优先级。 在转发策略页签,找到目标转发策略并将其拖拽至目标位置,然后在页面右上角单击保存优先级。 |
删除转发策略 | 单个删除转发策略
批量删除转发策略
|
使用示例
转发至指定虚拟终端节点组
假设某Web应用使用两台服务器分别通过不同的域名example.com
和example.net
对外提供服务,并使用全球加速服务提高该Web应用服务质量提升用户访问体验。
全球加速可配置HTTPS监听,通过添加默认终端节点组,绑定默认证书,将访问example.com
的请求转发至默认终端节点组。通过添加虚拟终端节点组,绑定扩展证书并创建域名类型转发策略,将访问example.net
的请求转发至指定的虚拟终端节点组。
本示例域名类型转发策略配置如下图所示。
关于如何通过配置多证书和转发策略实现加速访问多个HTTPS域名,请参见单个全球加速实例加速访问多个HTTPS域名。
重定向HTTP到HTTPS
为了提升网站的安全访问能力,某网站将HTTP服务切换为HTTPS服务,但存量用户可能无法使用原本HTTP方式访问网站。该网站可使用全球加速的转发策略功能配置重定向类型转发策略,默认通过301重定向方式,将客户端到全球加速的HTTP请求跳转为HTTPS请求,HTTPS请求更安全。
本示例中将HTTP:80访问重定向转发至HTTPS:443,重定向类型转发策略配置如下图所示。
配置基于域名的流量阻断
假设某网站通过域名example.com
对外提供服务,并将域名托管在某厂商的CDN服务上,为了进一步提升全球用户的访问体验,该网站部署了阿里云全球加速服务,将CDN作为全球加速的后端服务,实现对网站资源的加速分发。
由于CDN服务具备多租户共享接入IP的特性,当全球加速为example.com
提供加速服务时,相当于为该CDN开启了一条加速通道。如果该CDN的其他租户获取到全球加速的加速IP,便可以将其他域名(例如example.net
)解析至该加速IP,从而达到"搭便车"的目的。这将导致example.com
承担额外的流量和成本,甚至可能引发潜在的安全风险。
为规避上述风险,该网站可以使用全球加速的转发策略功能,配置仅允许来自example.com
的请求接入全球加速,其他请求均被丢弃,实现不同域名访问请求的严格隔离以及请求来源验证,从而确保网站安全性。
本示例中将来自example.com
请求转发至对应终端节点组中的后端服务中;其他所有域名的请求转发动作为丢弃(阻断流量)。
相关文档
CreateForwardingRules:创建转发策略。
UpdateForwardingRules:更新转发策略。
ListForwardingRules:查看已经创建的转发策略信息。
DeleteForwardingRules:删除转发策略。