更新时间:2025-07-25 GMT+08:00

转发动作

转发策略简介

弹性负载均衡支持多样化的转发规则和转发动作,便于灵活的分流业务,合理的分配资源。

转发动作

高级转发策略支持的转发动作类型有:转发至后端服务器组、重定向至监听器、重定向至URL、返回固定响应。

支持额外添加的转发动作如下:

  • 转发至后端服务器组:重写/写入Header/删除Header/限速。
  • 返回固定响应:限速。
表1 高级转发策略的转发动作

转发动作

描述

转发至后端服务器组

如果满足转发规则的条件,则将请求转发至配置好的后端服务器组。

说明:

仅转发动作设置为“转发至后端服务器组”时,支持额外添加转发动作:重写/写入Header/删除Header/限速。

详情见添加转发动作(可选)

重定向至监听器

如果满足转发规则的条件,则将请求转发至配置好的监听器上。

说明:

选择“重定向至监听器”并配置监听器后,除访问控制以外原有监听器配置会失效。

例如:配置了重定向至监听器后,当客户端通过HTTP请求访问的时候,后端服务器会返回HTTPS的响应,即强制以HTTPS请求访问网页。因此实际以HTTPS监听器的配置为准向后端服务器进行转发,原有HTTP监听器的配置失效。

重定向至URL

如果满足转发规则的条件,则将请求重定向至配置好的URL。

客户端访问ELB网址A后,ELB返回302或者其他3xx返回码和目的网址B,客户端自动跳转到网址B,网址B可自定义。

需要设置如下参数,其中协议、域名、端口和路径至少设置一条。
  • 协议:可以选择“${protocol}”或“HTTP”或“HTTPS”。${protocol}表示与源协议相同。
  • 域名:至少包含两个字符串,字符串间以点分割,字符串只能由英文字母、数字、中划线和小数点组成。字符串必须以英文字母或数字开头,不能以中划线结尾。${host}表示与源域名相同。
  • 端口:取值范围是1~65535。${port}表示与源端口相同。
  • 路径:由英文字母、数字和特殊字符_~';@^-%#&$.*+?,=!:|\/()[]{}组成,只能由/开头。${path}表示与源路径相同。
    说明:

    转发规则选择URL的正则匹配后,转发动作“重定向至URL”中的路径支持正则表达式替换。

  • 查询字符串:只能包含英文字母、数字和特殊字符!$'()*+,./:;=?@&^-_',&仅支持作为分隔符使用。
  • 返回码:可以选择“301”、“302”、“303”、“307”、“308”。
重定向至URL示例
重定向的链接为:http://www.example1.com/index.html?locale=zh-cn#videos
协议:HTTP
域名:www.example1.com
端口:8081
路径:/index.html
查询字符串:locale=zh-cn
返回码:301

重写

如果满足转发规则的条件,则将请求重写为配置好的URL后再访问后端服务器组。

需要设置如下参数:
  • 域名:至少包含两个字符串,字符串间以点分割,字符串只能由英文字母、数字、中划线和小数点组成。字符串必须以英文字母或数字开头,不能以中划线结尾。${host}表示与源域名相同。
  • 路径:由英文字母、数字和特殊字符_~';@^-%#&$.*+?,=!:|\/()[]{}组成,只能由/开头。${path}表示与源路径相同。
    说明:

    转发规则选择URL的正则匹配后,转发动作“重定向至URL”和“重写”中的路径支持正则表达式替换。路径替换规则详情见。

  • 查询字符串:只能包含英文字母、数字和特殊字符!$'()*+,./:;=?@&^-_',&仅支持作为分隔符使用。
说明:

重写类型的转发动作中域名、路径和查询字符串不能全部为空或者默认值。

返回固定响应

如果满足转发规则的条件,则返回固定响应。

用户访问ELB实例后,ELB直接返回响应,不向后端服务器继续转发,返回响应的状态码和内容可以自定义。

需要设置如下参数:
  • 返回码:默认支持2XX、4XX、5XX系列状态码。
  • Content-Type:可以选择“text/plain”、“text/css”、“text/html”、“application/javascript”、“application/json”。
  • 响应正文:非必填项。

响应正文示例

text/plain

很抱歉,暂不支持该语言.

text/css

<head><style type="text/css">div {background-color:red}#div {font-size:15px;color:red}</style></head>

text/html

<form action="/" method="post" enctype="multipart/form-data"><input type="text" name="description" value="some text"><input type="file" name="myFile"><button type="submit">Submit</button></form>

application/javascript

String.prototype.trim = function() {var reExtraSpace = /^\s*(.*?)\s+$/;return this.replace(reExtraSpace, "$1")}

application/json

{ "publicip": { "type": "5_bgp","ip_version": 4},"bandwidth": {"name": "bandwidth123","size": 10,"share_type": "PER"}}
说明:

填写响应正文时,请不要有回车格式,否则无法保存。

表2 添加转发动作(可选)

转发动作

描述

重写

如果满足转发规则的条件,则将请求重写为配置好的URL后再访问后端服务器组。

需要设置如下参数:
  • 域名:至少包含两个字符串,字符串间以点分割,字符串只能由英文字母、数字、中划线和小数点组成。字符串必须以英文字母或数字开头,不能以中划线结尾。${host}表示与源域名相同。
  • 路径:由英文字母、数字和特殊字符_~';@^-%#&$.*+?,=!:|\/()[]{}组成,只能由/开头。${path}表示与源路径相同。
    说明:

    转发规则选择URL的正则匹配后,转发动作“重定向至URL”和“重写”中的路径支持正则表达式替换。

  • 查询字符串:只能包含英文字母、数字和特殊字符!$'()*+,./:;=?@&^-_',&仅支持作为分隔符使用。
说明:

重写类型的转发动作中域名、路径和查询字符串不能全部为空或者默认值。

写入Header

如果满足转发规则的条件,则将在请求中写入配置的Header后再访问后端服务器组。

输入头字段名称和头字段内容,将覆盖请求中的头变量。默认支持配置5个Header变量。

Header是键值对的形式,需要分别设置值:
  • 键(key):只能由英文字母、数字、下划线和中划线组成。
  • 值(value):一个键下可以配置多个值。只能包含英文字母、数字和特殊字符!#$%&'()*+,.\/:;<=>?@[]^-_'{|}~。还支持*和?两种通配符。
    • 用户指定:用户指定写入的Header键。

      只能包含英文字母、数字和特殊字符!#$%&'\"()*+,.\\/:;<=>?@[]^-_` {|}~。首尾字符不能为空格。

    • 系统定义:写入。

      客户端端口/客户端IP地址/客户端请求协议/负载均衡实例ID/负载均衡实例监听端口/负载均衡绑定的弹性公网IP/负载均衡绑定的私网IP

    • 引用:引用请求头字段中的某一个Header键值。

      只能由小写英文字母、数字、下划线和中划线组成。

写入Header示例参见表3

删除Header

如果满足转发规则的条件,则将在请求中删除配置的Header后再访问后端服务器组。

输入Header头字段名称,将删除请求Header中对应的键值对内容。默认支持配置5个Header变量。

键(key):只能由英文字母、数字、下划线和中划线组成。

表3 写入Header示例

原有请求头

写入Header键

写入Header键值

转发至后端服务器组请求头

header1:aaa

header2:bbb

header3

自定义

ccc

header1:aaa

header2:bbb

header3:ccc

header3

系统指定

客户端端口

header1:aaa

header2:bbb

header3:客户端端口

header3

引用

header1

header1:aaa

header2:bbb

header3:aaa

不支持对请求中的以下Header键值进行修改:

connection、upgrade、content-length、transfer-encoding、keep-alive、te、host、cookie、remoteip、authority、x-forwarded-host、x-forwarded-for、x-forwarded-for-port、x-forwarded-tls-certificate-id、x-forwarded-tls-protocol、x-forwarded-tls-cipher、x-forwarded-elb-ip、x-forwarded-port、x-forwarded-elb-id、x-forwarded-elb-vip、x-real-ip、x-forwarded-proto、x-nuwa-trace-ne-in、x-nuwa-trace-ne-out