调用CreateLoadBalancerHTTPListener创建HTTP监听。

注意事项

新建的监听的状态为stopped。创建完成后,调用StartLoadBalancerListener接口启动监听来转发流量。

前提条件

您已经创建传统型负载均衡,具体操作,请参见CreateLoadBalancer

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String CreateLoadBalancerHTTPListener

要执行的操作。

取值:CreateLoadBalancerHTTPListener

HealthCheck String on

是否开启健康检查。取值:

  • on:开启健康检查。
  • off:不开启健康检查。
ListenerPort Integer 80

负载均衡实例前端使用的端口。

取值:1~65535

LoadBalancerId String lb-bp1c9vixxjh92q83tw*****

负载均衡实例ID。

StickySession String off

是否开启会话保持。取值:

  • on:是。
  • off(默认值):否。
RegionId String cn-hangzhou

负载均衡实例的地域ID。

您可以从地域和可用区列表或通过调用DescribeRegions接口获取地域ID。

Bandwidth Integer -1

监听的带宽峰值,单位:Mbps。取值:

  • -1:不限制带宽峰值。
  • 1~5120:监听的带宽峰值,所有监听的带宽峰值之和不能超过实例的带宽峰值。
说明 该参数只适用于中国内地。
BackendServerPort Integer 80

负载均衡实例后端使用的端口。

取值:1~65535

说明 如果不使用服务器组(不指定VServerGroupId参数),则该参数必选。
XForwardedFor String on

是否开启通过X-Forwarded-For头字段获取来访者真实 IP。取值:

  • on(默认值):是。
  • off:否。
Scheduler String wrr

调度算法。取值:

  • wrr(默认值):权重值越高的后端服务器,被轮询到的概率也越高。
  • rr:按照访问顺序依次将外部请求依序分发到后端服务器。
StickySessionType String insert

Cookie处理方式。取值:

  • insert:植入Cookie。

    客户端第一次访问时,负载均衡会在返回请求中植入Cookie(即在HTTP或HTTPS响应报文中插入ServerId),下次客户端携带此Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器上。

  • server:重写Cookie。

    负载均衡发现用户自定义了Cookie,将会对原来的Cookie进行重写,下次客户端携带新的Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器。
    说明StickySession值为on时,必须指定该参数。
CookieTimeout Integer 500

Cookie超时时间。单位:秒。

取值:1~86400

说明StickySessiononStickySessionTypeinsert时,该参数必选。
Cookie String B490B5EBF6F3CD402E515D22BCDA1598

服务器上配置的Cookie。

长度为1~200个字符,只能包含ASCII英文字母和数字字符,不能包含半角逗号(,)、半角分号(;)或空格,也不能以美元符号($)开头。

说明StickySessiononStickySessionTypeserver时,该参数必选。
HealthCheckMethod String get

监听HTTP类型健康检查的健康检查方法。取值:headget

说明 HealthCheck值为on时才会有效。
HealthCheckDomain String 172.16.0.0/12

用于健康检查的域名,取值:

  • $_ip: 后端服务器的私网IP。当指定了IP或该参数未指定时,负载均衡会使用各后端服务器的私网IP当做健康检查使用的域名。
  • domain:域名长度为1~80字符,只能包含字母、数字、半角句号(.)和短划线(-)。
说明HealthCheck值为on时才会有效。
HealthCheckURI String /test/index.html

用于健康检查的URI。

长度限制为1~80个字符,只能使用字母、数字和短划线(-)、正斜线(/)、半角句号(.)、百分号(%)、半角问号(?)、井号(#)和and(&)这些字符。URI不能只为正斜线(/),但必须以正斜线(/)开头。

说明HealthCheck值为on时才会有效。
HealthyThreshold Integer 4

健康检查连续成功多少次后,将后端服务器的健康检查状态由失败判定为成功

取值:2~10

说明HealthCheck值为on时才会有效。
UnhealthyThreshold Integer 4

健康检查连续失败多少次后,将后端服务器的健康检查状态由成功判定为失败

取值:2~10

说明HealthCheck值为on时才会有效。
HealthCheckTimeout Integer 3

接收来自运行状况检查的响应需要等待的时间。如果后端ECS在指定的时间内没有正确响应,则判定为健康检查失败。单位:秒。

取值:1~300

说明
  • 如果HealthCheckTimeout的值小于HealthCheckInterval的值,则HealthCheckTimeout无效,超时时间为HealthCheckInterval的值。
  • HealthCheck值为on时才会有效。
HealthCheckConnectPort Integer 80

健康检查的后端服务器的端口。

取值: 1~65535

说明HealthCheck值为on时才会有效。
HealthCheckInterval Integer 5

健康检查的时间间隔。单位:秒。

取值: 1~50

说明HealthCheck值为on时才会有效。
HealthCheckHttpCode String http_2xx

健康检查正常的HTTP状态码,多个状态码用逗号分隔。

取值:http_2xx(默认值)、http_3xx、http_4xxhttp_5xx

说明HealthCheck值为on时才会有效。
VServerGroupId String rsp-cige6j*****

虚拟服务器组ID。

XForwardedFor_SLBIP String on

是否通过SLB-IP头字段获取客户端请求的VIP(Virtual IP address)。取值:

  • on:是。
  • off(默认值):否。
XForwardedFor_SLBID String on

是否通过SLB-ID头字段获取负载均衡实例ID。取值:

  • on:是。
  • off(默认值):否。
XForwardedFor_proto String on

是否通过X-Forwarded-Proto头字段获取负载均衡实例的监听协议。取值:

  • on:是。
  • off(默认值):否。
Gzip String on

是否开启Gzip压缩,对特定文件类型进行压缩。取值:

  • on(默认值):是。
  • off:否。
AclId String 123

监听绑定的访问策略组ID。

说明AclStatus参数的值为on时,该参数必选。
AclType String white

访问控制类型:

  • white: 仅转发来自所选访问控制策略组中设置的IP地址或地址段的请求,白名单适用于只允许特定IP访问的场景。设置白名单存在一定业务风险。一旦设置白名单,就只有白名单中的IP可以访问负载均衡监听。

    如果开启了白名单访问,但访问策略组中没有添加任何IP,则负载均衡监听会转发全部请求。

  • black: 来自所选访问控制策略组中设置的IP地址或地址段的所有请求都不会转发,黑名单适用于只限制某些特定IP访问的场景。

    如果开启了黑名单访问,但访问策略组中没有添加任何IP,则负载均衡监听会转发全部请求。

说明AclStatus参数的值为on时,该参数有效。
AclStatus String off

是否开启访问控制功能。取值:

  • on:是。
  • off(默认值):否。
Description String 监听1

设置监听的描述信息。

长度限制为1~80个字符,允许包含中英文字母、数字、短划线(-)、正斜线(/)、半角句号(.)和下划线(_)等字符。

ListenerForward String off

是否开启HTTP至HTTPS的转发。取值:

  • on:是。
  • off(默认值):否。
ForwardPort Integer 443

HTTP至HTTPS的监听转发端口。

IdleTimeout Integer 3

指定连接空闲超时时间。单位:秒。

默认值为15,取值范围:1~60

在超时时间内一直没有访问请求,负载均衡会暂时中断当前连接,直到一下次请求来临时重新建立新的连接。

RequestTimeout Integer 6

指定请求超时时间。单位:秒。

默认值为60,取值范围为1~180

在超时时间内后端服务器一直没有响应,负载均衡将放弃等待,给客户端返回 HTTP 504 错误码。

返回数据

名称 类型 示例值 描述
RequestId String CEF72CEB-54B6-4AE8-B225-F876FF7BA984

请求ID。

示例

请求示例

http(s)://[Endpoint]/?Action=CreateLoadBalancerHTTPListener
&HealthCheck=on
&ListenerPort=80
&LoadBalancerId=lb-bp1c9vixxjh92q83tw*****
&StickySession=off
&<公共请求参数>

正常返回示例

XML格式

<CreateLoadBalancerHTTPListenerResponse>
d>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>
</CreateLoadBalancerHTTPListenerResponse>

JSON格式

{"RequestId":"CEF72CEB-54B6-4AE8-B225-F876FF7BA984"}

错误码

HttpCode 错误码 错误信息 描述
400 LbNotSupportTcpssl You cannot create a TCP SSL type listener for the specified load balancer. 指定的实例不支持创建tcpssl类型的监听。
400 LbSupportTcpsslOnly The specified load balancer supports TCP SSL type listener only. 指定的实例只支持创建tcpssl类型的监听。
400 ListenerNotSupportRule You cannot create a rule for the specified listener. 指定的监听不支持创建转发规则。
400 Mismatch.SlbSpecTypeAndListenerProtocol The SlbSpecType and ListenerProtocol are mismatched. 实例规格类型和监听类型不匹配。

访问错误中心查看更多错误码。