You need to enable JavaScript to run this app.
导航
创建路由
最近更新时间:2024.11.21 17:34:39首次发布时间:2023.02.24 11:15:43

通过创建路由功能,可将符合规则的请求,按照设置的流量权重分发至多个目标 Upstream,满足应用的多版本管理等场景。本文为您介绍如何创建路由。

注意

在 VKE 侧进行缩容操作,可能导致容器服务类型 Upstream 的路由产生秒级别的短暂流量抖动,请谨慎操作。

前提条件

使用限制

  • 一条路由最多支持对接 10 个 Upstream。
  • 如果多条路由规则存在路径重叠,则来自重叠路径的请求会被转发至最早创建的路由。

操作步骤

创建单个服务的路由

创建路由时,支持在服务配置页面中,为该服务创建单条路由。

  1. 登录 API 网关控制台
  2. 在顶部导航栏,选择目标地域。
  3. 在左侧导航栏选择 路由管理 > 服务列表(域名)
  4. 在服务列表页面,单击目标服务名称,进入当前服务概览页面。
  5. 在路由信息区域,单击 创建路由,配置路由信息。
    • 基本信息
      alt

      配置项说明
      路由名称自定义路由名称。同一服务下路由名称唯一。
      所属服务显示当前路由所属的服务名称。不支持修改。

      匹配规则

      配置匹配规则,只有符合规则的请求才能转发至目标 Upstream。

      • 请求方法 Method:只允许符合指定方法的请求进行访问。支持 GET、POST、PUT、DELETE、HEAD、OPTIONS 等请求方法。
      • 路径 Path:指定允许访问的请求路径。支持 3 种匹配方式,示例请参考 路径匹配示例
        • 精准匹配:表示请求的路径和设置的路径完全一致,请求才会被转发。
        • 正则匹配:表示请求的路径和设置的路径正则表达式匹配,请求才会被转发。
        • 前缀匹配:表示请求的路径只要匹配已设定路径的开头,请求才会被转发。

      说明

      Path 的优先级由高到低为:精准匹配 > 前缀匹配 > 正则匹配。

      • 请求头 Header:只允许包含了指定请求头 Header 的请求进行访问。支持添加多条请求 Header。
        • Header key:支持英文字母、数字和中划线-、下划线_
        • 匹配类型:指定 Header 的匹配方式,支持 精确匹配正则匹配前缀匹配
        • Header value:校验 ASCII 码范围。
      • 请求参数 QueryString:只允许包含了指定访问参数的请求进行访问。支持添加多条请求参数。
      • 优先级:输入路由匹配规则的优先级。整数形式,取值范围为 0~100。数字越小,优先级越高。匹配规则的精确度越高优先级越高。
        例如,path:/abc, header:version=v1优先级高于path:/abc,与创建时间无关。

      修改请求头

      支持在转发过程中对原请求的 Header 进行编辑,并将修改后的 Header 转发给网关对接的后端服务。 支持以下三种修改模式。选择对应的模式后,请按界面要求填写对应的 key 和 value,value 不允许为空值。

      注意

      不支持 Header key 重复。如果请求中有多个相同的 key,可以将多个 value 值合并成一条并用逗号(;)分隔。

      • 覆写(set):如果客户端发送的请求头中没有携带对应的 key,则添加一条新的 Header;如果已携带对应的 key,则该 key 的 value 将被 API 网关侧配置的 value 覆写。
      • 追加(add):如果客户端发送的请求头中没有携带对应的 key,则添加一条新的Header;如果已携带对应的 key,则在此条 key 的 value 中追加 API 网关侧配置的 value。
      • 移除(remove):如果客户端发送的请求头中携带对应的 key,则删除此字段。选择移除模式后,只需填写对应的 key。
    • Upstream 流量分发
      流量分发用于基于流量权重,将数据流路由至不同的 Upstream。单击 + 添加一个 Upstream,最多支持添加 10 个 Upstream。
      alt

      配置项说明
      后端类型选择接入的 Upstream 类型,当前支持函数服务、云服务器、容器服务、固定域名、注册中心。
      选择 Upstream选择具体要对接的 Upstream。

      权重

      配置当前 Upstream 的流量权重。整数形式,取值范围为 1~1000。

      说明

      系统会根据 Upstream 配置的权重总值和各 Upstrem 全栈占比,按比例显示流量划分,百分比数字精确到两位小数。

      灰度版本对于容器服务类型 Upstream,支持路由至应用的某一版本。工作负载在 VKE 侧支持通过配置的不同 Label 来区分为不同灰度版本,用于满足应用的多版本管理功能。如不选择灰度版本,则将按照负载均衡策略选择路由至当前应用的具体版本。具体使用方式,请参见 管理容器服务类型 Upstream 版本
  6. 单击 确定,创建完成路由。

批量创建路由

创建路由时,支持在路由列表中,为多个服务批量创建路由。

  1. 登录 API 网关控制台
  2. 在顶部导航栏,选择目标地域。
  3. 在左侧导航栏选择 路由管理 > 路由列表。单击 创建路由,配置路由信息。
    • 基本信息
      alt

      配置项说明
      路由名称自定义路由名称。同一服务下路由名称唯一。
      所属服务配置路由所属服务。支持多选,允许快速创建多条路由。

      匹配规则

      配置匹配规则,只有符合规则的请求才能转发至目标 Upstream。

      • 请求方法 Method:只允许符合指定方法的请求进行访问。支持 GET、POST、PUT、DELETE、HEAD、OPTIONS 等请求方法。
      • 路径 Path:指定允许访问的请求路径。支持 3 种匹配方式,示例请参考 路径匹配示例
        • 精准匹配:表示请求的路径和设置的路径完全一致,请求才会被转发。
        • 正则匹配:表示请求的路径和设置的路径正则表达式匹配,请求才会被转发。
        • 前缀匹配:表示请求的路径只要匹配已设定路径的开头,请求才会被转发。

      说明

      Path 的优先级由高到低为:精准匹配 > 前缀匹配 > 正则匹配。

      • 请求头 Header:只允许包含了指定请求头 Header 的请求进行访问。支持添加多条请求 Header。
        • Header key:支持英文字母、数字和中划线-、下划线_
        • 匹配类型:指定 Header 的匹配方式,支持 精确匹配正则匹配前缀匹配
        • Header value:校验 ASCII 码范围。
      • 请求参数 QueryString:只允许包含了指定访问参数的请求进行访问。支持添加多条请求参数。
      • 优先级:输入路由匹配规则的优先级。整数形式,取值范围为 0~100。数字越小,优先级越高。匹配规则的精确度越高优先级越高。
        例如,path:/abc, header:version=v1优先级高于path:/abc,与创建时间无关。

      修改请求头

      支持在转发过程中对原请求的 Header 进行编辑,并将修改后的 Header 转发给网关对接的后端服务。 支持以下三种修改模式。选择对应的模式后,请按界面要求填写对应的 key 和 value,value 不允许为空值。

      注意

      不支持 Header key 重复。如果请求中有多个相同的 key,可以将多个 value 值合并成一条并用逗号(;)分隔。

      • 覆写(set):如果客户端发送的请求头中没有携带对应的 key,则添加一条新的 Header;如果已携带对应的 key,则该 key 的 value 将被 API 网关侧配置的 value 覆写。
      • 追加(add):如果客户端发送的请求头中没有携带对应的 key,则添加一条新的Header;如果已携带对应的 key,则在此条 key 的 value 中追加 API 网关侧配置的 value。
      • 移除(remove):如果客户端发送的请求头中携带对应的 key,则删除此字段。选择移除模式后,只需填写对应的 key。
    • Upstream 流量分发
      流量分发用于基于流量权重,将数据流路由至不同的 Upstream。单击 + 添加一个 Upstream,最多支持添加 10 个 Upstream。
      alt

      配置项说明
      后端类型选择接入的 Upstream 类型,当前支持函数服务、云服务器、容器服务、固定域名、注册中心。
      选择 Upstream选择具体要对接的 Upstream。

      权重

      配置当前 Upstream 的流量权重。整数形式,取值范围为 1~1000。

      说明

      系统会根据 Upstream 配置的权重总值和各 Upstrem 全栈占比,按比例显示流量划分,百分比数字精确到两位小数。

      灰度版本对于容器服务类型 Upstream,支持路由至应用的某一版本。工作负载在 VKE 侧支持通过配置的不同 Label 来区分为不同灰度版本,用于满足应用的多版本管理功能。如不选择灰度版本,则将按照负载均衡策略选择路由至当前应用的具体版本。具体使用方式,请参见 管理容器服务类型 Upstream 版本
  4. 单击 确定,创建完成路由。

路径匹配示例

路径匹配示例,如下表所示。

匹配方式请求路径设定路径
/apig/test.jpg/apig/apig[^\s]*
精准匹配/apig/test.jpg--
正则匹配-
前缀匹配-