云原生网关在处理收到的请求时,会按照事先配置的路由规则的优先级逐一进行匹配。匹配过程是从高优先级规则向低优先级规则进行遍历。如果与某条规则匹配成功,则转发请求至规则中配置的目标服务;如果匹配失败,则会返回404错误。
路由匹配优先级
存在多条路由规则时,按照关联域名 > 路径(Path)> 请求头(Header)> 请求参数(Query)> 创建时间的优先级从高到低依次进行排序,详细规则如下:
根据关联域名进行判断:域名字符串长度越长,优先级越高。
根据路径(Path)进行判断:
匹配规则不同时:等于 > 前缀是 > 正则匹配。
匹配规则相同时:路径(Path)字符串越长,优先级越高。
根据请求头(Header)的键值对总数进行判断:总数越大,优先级越高。
根据请求参数(Query)的键值对进行判断:总数越大,优先级越高。
根据创建时间进行判断:创建时间越早则优先级越高。
操作步骤
登录MSE网关管理控制台,并在顶部菜单栏选择地域。
在左侧导航栏,选择云原生网关 > 网关列表,单击目标网关名称。
在左侧导航栏,单击路由管理,然后在路由页签单击创建路由。
在创建路由页面,配置相关配置项,然后单击保存。
说明匹配规则之间是“与”关系,即填写的规则越多匹配的范围越小。
路由之间匹配的优先级与路由配置页面展示排列顺序一致。
配置项
描述
路由名称
自定义路由名称。您还可以单击添加描述对路由进行说明。
域名
选择在路由需要匹配的域名,支持选择多个域名。
如果您需要创建新的域名,可以直接单击创建域名,在面板中进行创建。
匹配规则
路径(Path)
设置匹配HTTP请求中的Path参数。
相同匹配规则时Path越长优先级越高。
不同匹配规则时等于 > 前缀是 > 正则匹配。
等于:即完全匹配。例如,Path等于
/user
。前缀是:以前缀作为匹配条件。例如,Path以
/user
开头。正则匹配:以正则表达式作为匹配条件。
方法(Method)
设置匹配HTTP请求中的Method参数。支持选择多种HTTP方法,默认为ANY。
请求头(Header)
设置匹配HTTP请求中的Header参数,相同匹配规则时参数越多优先级越高。
请求参数(Query)
设置匹配HTTP请求中的Query参数,相同匹配规则时参数越多优先级越高。
使用场景
选择当前路由的目标服务类型。
基础场景:单服务
灰度场景:多服务、标签路由
其他场景:Mock、重定向
关于目标服务不同类型说明,请参见路由方式概述。
说明涉及权重的目标服务流量比例总和要求为100%。
后端服务
选择已关联的后端服务和端口。
说明您可以单击关联服务,在面板选择来源和服务。
不同的来源类型允许添加的来源数量有不同的限制。
容器服务不得超过5个。
Nacos和Zookeeper只能添加一个。
EDAS和SAE不限。
Fallback
设置Fallback服务,您需要选择指定的服务。当路由指向的后端服务没有可用节点时,原请求会访问此处指定的Fallback服务。
说明目前仅支持HTTP服务之间的Fallback能力。
超时时间(秒)
输入超时时间。默认为60秒。如果为0,则表示永不超时。
重试次数(次)
输入重试次数。默认为2次。如果为 0,则表示禁用重试。
重试条件
选择重试条件。
重试状态码
添加重试状态码,可添加多个。
相关文档
根据实际情况和需求的变化,您可以随时修改路由规则。具体操作,请参见变更路由规则。