您可以定义ALB实例的监听转发规则,将客户端请求按照指定规则转发到一个或多个服务器组中的一个或多个后端服务器。

背景信息

ALB转发规则包含请求方向和响应方向,每条转发规则由一个或多个条件以及一个或多个动作组成。流量示意图
  • 客户端发起请求到ALBALB将请求数据通过请求方向转发规则处理后发送到对应的后端服务器,后端服务器的响应数据再经过ALB的响应方向转发规则处理后,返回给客户端。
    • 请求方向转发规则中只能设置请求方向条件和动作。
    • 响应方向转发规则中可以同时设置请求方向的条件和响应方向的条件以及响应方向的动作。
  • 一个转发规则必须包含有一条转发、重定向或返回固定响应类型的转发动作。
    • 请求方向的条件包括:域名路径HTTP标头查询字符串HTTP请求方法CookieSourceIp
    • 请求方向的动作包括:转发至重定向至返回固定响应重写写入Header删除Header限速流量镜像至跨域
    • 响应方向的条件包括:
      • 如果满足以下请求方向条件(选填):选择的条件类型为域名路径HTTP标头查询字符串HTTP请求方法CookieSourceIp
      • 且满足以下响应方向条件:选择的条件类型为响应中的状态码响应中的标头
    • 响应方向的动作包括:写入Header删除Header

使用限制

  • 基础版ALB实例不区分请求方向和响应方向,标准版及以上的ALB实例才会区分请求方向和响应方向。
  • 基础版ALB实例转发条件只支持域名路径HTTP标头,转发动作只支持转发至重定向至,如需使用其他转发规则请升级到标准版ALB实例,具体操作,请参见实例变配
  • 支持企业版转发路由器和高速通道实现跨域转发,不支持基础版转发路由器。

前提条件

添加转发规则

您可以在创建监听时定义默认转发规则,或者创建监听后添加转发规则。

  1. 登录应用型负载均衡ALB控制台
  2. 在顶部菜单栏处,选择目标转发规则的地域。
  3. 实例页面,单击目标实例ID。
  4. 单击监听页签,找到目标监听,然后在操作列单击查看/编辑转发规则
  5. 转发规则页签,选择请求方向转发规则响应方向转发规则,然后单击插入新规则
  6. 插入转发规则区域,配置下表参数,然后单击确定
    说明
    • 同一个转发条件的不同转发动作之间为“或”的关系。即如果一个转发条件配置了多个转发动作,则请求流量匹配任何一个转发动作都可以实现转发。
    • 不同转发条件之间为“与”的关系。即如果配置了多个转发条件,则请求流量必须同时满足所有的转发条件才能实现转发。
    • 请求方向转发规则
      参数 描述
      规则名称 输入自定义规则名称。

      一个转发规则只能有一个规则名称。

      如果(条件全部匹配) 选择条件类型添加以下条件,您也可以单击+添加转发条件添加多个转发条件:
      • 域名:添加一个或多个域名。域名长度限制为3~128个字符,支持星号(*)和半角问号(?)作为通配符使用,包括精准域名、通配符域名、正则表达式域名。关于域名配置规则的更多信息,请参见转发条件的域名配置规则

        示例:*.example.com

      • 路径:添加一条或多条路径。包括正则表达式类型的路径和非正则表达式类型的路径。关于路径配置规则的更多信息,请参见转发条件的路径配置规则

        示例:URL为www.example.com/test/test1?x=1&y=2时可配置为/test/*

      • HTTP标头:在键是字段输入HTTP标头的名称,值是字段输入HTTP标头的内容,可添加多条标头内容。

        示例:键user-agent,值*Mozilla/4.0*

      • 查询字符串:添加一个或多个查询字符串的键和值对。键的长度为1~100个字符,值的长度为1~128个字符,支持小写字母、可见字符和通配符星号(*)和半角问号(?),不支持空格和#[]{}\|<>&

        示例:URL为www.example.com/test/test1?x=1&y=2时可配置为x:1y:2

      • HTTP请求方法:添加一个或多个HTTP请求方法。
      • Cookie:添加一个或多个Cookie。键的长度为1~100个字符,值长度为1~128个字符,支持小写字母、可见字符和通配符星号(*)和半角问号(?),不支持空格和#[]{}\|<>&

        示例:键key,值value

      • SourceIp:添加一个或多个IP地址或者IP地址段。
      那么转发动作是 选择动作类型添加以下动作,您也可以单击+添加动作添加多个转发动作。
      • 转发至:在服务器组列表中选择目标服务器组。您可以添加多个服务器组并开启服务器组间会话保持
      • 重定向至:在协议状态码列表选择一个协议和一个状态码,以及分别输入跳转的目的域名端口路径查询字符串。
        说明
      • 返回固定响应:输入响应状态码,然后选择响应正文类型并输入响应正文
      • 重写:分别输入跳转的目标域名路径查询字符串。重写中关于路径配置规则的更多信息,请参见重写和重定向中路径的增强配置规则
      • 写入Header:输入头字段名称和头字段内容,将覆盖请求中已有的头变量。
      • 删除Header:输入头字段内容。
      • 限速:输入每秒请求数,取值范围:1~100000。请求速率超过设置的规格后,新建连接请求将被丢弃,并会返回给客户端503状态码。
      • 流量镜像至:在服务器组列表中选择目标服务器组。支持选择服务器类型IP类型的后端服务器组。
        流量镜像至IP类型的后端服务器组时,请注意:
        • 后端服务器组类型为IP类型功能默认不开放,如需使用,请提交工单申请。
        • 只支持挂载私网服务器,不支持挂载公网服务器。
        • 不支持挂载同一个VPC内的ALB或CLB实例。
        • 支持企业版转发路由器和高速通道实现跨域转发,不支持基础版转发路由器。
        • 一张云企业网中,一个地域只能有一个VPC内的一个或多个ALB实现跨地域挂载服务器。跨域挂载示例1
          • 无法实现同一个地域多个VPC内的ALB使用同一个转发路由器访问后端服务。跨域挂载示例2
          • 无法实现同一个地域多个VPC内的ALB使用多个转发路由器访问同一个后端服务。跨域挂载示例3
        • ALB与后端服务器的流量仅支持通过系统路由表转发,暂不支持通过VPC自定义路由表转发。
      • 跨域:客户端发送的请求URL的协议、域名或者端口三者之间任意一个与当前返回的页面URL不同即为跨域。请求包括简单请求和预检请求。
        • 允许的访问来源:设置允许通过浏览器访问服务资源的站点。
        • 允许的方法:选择跨域访问时允许的HTTP方法。包括:GETPOSTPUTDELETEHEADOPTIONSPATCH
        • 允许的请求头部:除了浏览器内置的基础Header,设置跨域访问时允许的Header。
        • 允许的响应头部:允许浏览器、JavaScript脚本访问的响应头部。
        • 允许的携带凭证:跨域访问时是否允许携带的凭证信息。取值:允许不允许,默认允许
        • 浏览器缓存时间:对于预检请求,设置OPTIONS预检请求在浏览器的最大缓存时间。单位:秒。取值范围:-1~172800
    • 响应方向转发规则
      参数 描述
      规则名称 输入自定义规则名称。

      一个转发规则只能有一个规则名称。

      如果满足以下请求方向条件(选填) 选择请求方向的转发条件,您也可以单击+添加请求方向转发条件添加多个请求方向的转发条件。具体操作,请参见添加转发规则步骤中请求方向转发规则的转发条件配置。
      且满足以下响应方向条件 选择响应方向的转发条件,您也可以单击+添加响应方向转发条件添加多个响应方向转发条件:
      • 响应中的状态码:返回给客户端响应中的状态码,取值100~599。

        支持输入范围,多个值用半角逗号(,)分隔,例如:200-233,301。

      • 响应中的标头:响应中的HTTP标头。在键是字段输入HTTP标头的名称,值是字段输入HTTP标头的内容,可添加多条标头内容。
      那么转发动作是 选择响应方向的动作类型,您也可以单击+添加动作添加多个响应方向的转发动作:
      • 写入Header:输入响应方向头字段名称和头字段内容,将覆盖请求中已有的头变量。
      • 删除Header:输入响应方向头字段内容。
    • 添加AScript可编程脚本
      您可以单击+在规则执行后添加可编程脚本添加AScript可编程脚本转发规则。具体操作,请参见添加AScript可编程脚本定义的转发规则
      说明
      AScript可编程脚本转发规则功能必须同时满足以下条件才能使用:
      1. 创建的ALB实例版本为标准版及以上版本。
      2. 添加AScript可编程脚本转发规则功能默认不开放,如需使用请提交工单申请。

编辑转发规则

  1. 登录应用型负载均衡ALB控制台
  2. 在顶部菜单栏处,选择目标转发规则的地域。
  3. 实例页面,单击目标实例ID。
  4. 单击监听页签,找到目标监听,然后在操作列单击查看/编辑转发规则
  5. 转发规则页签,选择请求方向转发规则响应方向转发规则,然后选中您要编辑的规则,单击编辑图标。
  6. 修改完成后,单击保存

重新排序规则

转发规则按照优先级从高到低开始匹配,数值越小优先级越高。您可以随时更改非默认规则的优先级。您不能更改默认规则的优先级。

  1. 登录应用型负载均衡ALB控制台
  2. 在顶部菜单栏处,选择目标转发规则的地域。
  3. 实例页面,单击目标实例ID。
  4. 单击监听页签,找到目标监听,然后在操作列单击查看/编辑转发规则
  5. 转发规则页签,选择请求方向转发规则响应方向转发规则,将目标转发规则移动到目标位置,然后单击保存优先级

删除转发规则

您可以随时删除监听的非默认转发规则,默认转发规则不支持删除。当您删除监听时,也会删除它的所有转发规则。

  1. 登录应用型负载均衡ALB控制台
  2. 在顶部菜单栏处,选择目标转发规则的地域。
  3. 实例页面,单击目标实例ID。
  4. 单击监听页签,找到目标监听,然后在操作列单击查看/编辑转发规则
  5. 转发规则页签,选择请求方向转发规则响应方向转发规则,然后选中您要删除的转发规则,单击删除图标。
  6. 单击确定删除

相关文档