请求转发会将 URL 或主机重定向到特定的服务器池。

前提条件

确认第 7 层 HTTP 虚拟服务器可用。请参见添加第 7 层 HTTP 虚拟服务器

负载均衡器规则支持 REGEX 匹配类型。支持 PCRE 样式 REGEX 模式,但高级用例存在一些限制。在匹配条件中使用 REGEX 时,支持已命名捕获组。请参见负载均衡器规则中的正则表达式

过程

  1. 打开第 7 层 HTTP 虚拟服务器。
  2. 单击请求转发 > 添加规则以配置 HTTP 请求转发的负载均衡器规则。
  3. 从下拉列表中,选择一个匹配条件。匹配条件用于匹配通过负载均衡器传递的应用程序流量。可以在一个负载均衡器规则中指定多个匹配条件。每个匹配条件定义应用程序流量的一个成员资格条件。
    支持的匹配条件 描述
    HTTP 请求方法 与 HTTP 请求方法匹配。

    http_request.method - 要匹配的值

    HTTP 请求 URI 与不带查询参数的 HTTP 请求 URI 匹配。

    http_request.uri - 要匹配的值

    HTTP 请求 URI 参数

    用于匹配 URI 参数(又称 HTTP 请求消息的查询字符串),例如,在 URI http://exaple.com?foo=1&bar=2 中,“foo=1&bar=2”是包含 URI 参数的查询字符串。在 URI 方案中,查询字符串的表示形式为以第一个问号(“?”)字符开始,并以数字符号(“#”)字符或 URI 末尾结束。

    http_request.uri_arguments - 要匹配的值

    HTTP 请求版本 用于匹配 HTTP 请求消息的 HTTP 协议版本

    http_request.version - 要匹配的值

    HTTP 请求标头 用于按 HTTP 标头字段匹配 HTTP 请求消息。HTTP 标头字段是 HTTP 请求和响应消息的标头部分的组件。它们定义 HTTP 事务的操作参数。

    http_request.header_name - 要匹配的标头名称

    http_request.header_value - 要匹配的值

    HTTP 请求 Cookie 用于按 Cookie(即特定类型的 HTTP 标头)匹配 HTTP 请求消息。match_type 和 case_sensitive 定义如何比较 Cookie 值。

    http_request.cookie_value - 要匹配的值

    HTTP 请求正文 与 HTTP 请求正文内容匹配。

    http_request.body_value - 要匹配的值

    客户端 SSL 与客户端 SSL 配置文件 ID 匹配。

    ssl_profile_id - 要匹配的值

    TCP 标头端口 与 TCP 源或目标端口匹配。

    tcp_header.source_port - 要匹配的源端口

    tcp_header.destination_port - 要匹配的目标端口
    IP 标头源 与 HTTP 消息中的 IP 标头字段匹配。源类型必须是单个 IP 地址、一系列 IP 地址或者一个组。请参见添加组
    • 如果选择了源类型为 IP 地址的 IP 标头源,则 HTTP 消息的源 IP 地址应与在组中配置的 IP 地址相匹配。支持 IPv4 地址和 IPv6 地址。
    • 如果选择了源类型为组的 IP 标头源,请从下拉列表中选择该组。

    ip_header.source_address - 要匹配的源地址

    ip_header.destination_address - 要匹配的目标地址
    变量 创建一个变量并向该变量分配值。
    区分大小写 设置区分大小写的标记进行 HTTP 标头值比较。如果为 true,则在比较 HTTP 正文值时,需要区分大小写。
  4. 选择以下某项操作:
    操作 描述
    HTTP 拒绝 用于拒绝 HTTP 请求消息。指定的 reply_status 值将用作相应 HTTP 响应消息的状态代码。响应消息将发送回客户端(通常是浏览器),指示请求被拒绝的原因。

    http_forward.reply_status - 用于拒绝的 HTTP 状态代码

    http_forward.reply_message - HTTP 拒绝消息
    HTTP 重定向

    用于将 HTTP 请求消息重定向到新 URL。重定向的 HTTP 状态代码为 3xx,例如,301、302、303、307 等。redirect_url 是将 HTTP 请求消息重定向到的新 URL。

    http_forward.redirect_status - 用于重定向 http_forward.redirect_url(HTTP 重定向 URL)的 HTTP 状态代码
    选择池

    将请求强制到特定服务器池。指定池成员的配置算法(预测器)用于在服务器池中选择服务器。匹配的 HTTP 请求消息将转发到指定的池。

    如果启用了 HTTP 保持活动状态,并在负载均衡器中配置了转发规则,则服务器保持活动状态设置优先。因此,HTTP 请求将被发送到已连接且保持活动状态的服务器。

    如果始终希望在满足负载均衡器规则条件时优先使用转发规则,请禁用保持活动状态设置。

    请注意,持久性设置优先于保持活动状态设置。

    执行处理的顺序为:持久性 > 保持活动状态 > 负载均衡器规则

    http_forward.select_pool - 服务器池 UUID

    变量持久性检测 选择通用持久性配置文件,然后输入变量名称。

    您还可以启用哈希变量。如果变量值较长,则对变量进行哈希处理可确保将其正确存储到持久性表中。如果未启用哈希变量,则当变量值较长时,只会将变量值的固定前缀部分存储到持久性表中。因此,对于具有长变量值的两个不同请求,它们应发送到不同的后端服务器,但因为其变量值具有相同的前缀部分,可能会发送到同一个后端服务器。

    连接断开

    如果在条件中启用了“反转”,则在配置“连接断开”后,将丢弃与条件不匹配的所有请求。将允许与条件匹配的请求。

    应答状态 显示应答的状态。
    应答消息 服务器使用应答消息来响应,其中包含确认的地址和配置。
  5. 依次单击保存应用