调用CreateLoadBalancerTCPListener接口创建TCP监听。

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

调试

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

请求参数

名称 类型 是否必选 示例值 描述
RegionId String cn-hangzhou

传统型负载均衡实例的地域ID。

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

Action String CreateLoadBalancerTCPListener

系统规定参数。取值:CreateLoadBalancerTCPListener

LoadBalancerId String lb-bp1b6c719dfa08ex****

传统型负载均衡实例的ID。

ListenerPort Integer 80

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

取值范围:1~65535

BackendServerPort Integer 80

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

取值范围:1~65535

如果不使用服务器组(不指定vServerGroupId),则该参数必选。

Bandwidth Integer -1

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

  • -1:对于按流量计费的公网负载均衡实例,可以将带宽峰值设置为-1,即不限制带宽峰值。
  • 1~5120: 对于按带宽计费的公网负载均衡实例,可以设置每个监听的带宽峰值,但所有监听的带宽峰值之和不能超过实例的带宽峰值。
Scheduler String wrr

调度算法。取值:

  • wrr(默认值):权重值越高的后端服务器,被轮询到的次数(概率)也越高。
  • rr:按照访问顺序依次将外部请求依序分发到后端服务器。
  • sch:基于源IP地址的一致性hash,相同的源地址会调度到相同的后端服务器。
  • tch:基于四元组的一致性hash(源IP+目的IP+源端口+目的端口),相同的流会调度到相同的后端服务器。
说明 仅性能保障型实例支持schtch一致性hash算法。
PersistenceTimeout Integer 0

会话保持的超时时间。单位:秒。

取值范围:0~3600

默认值:0,表示关闭会话保持。

EstablishedTimeout Integer 500

连接超时时间。单位:秒。

取值范围:10~900

HealthyThreshold Integer 4

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

取值范围: 2~10

UnhealthyThreshold Integer 4

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

取值范围:2~10

HealthCheckConnectTimeout Integer 100

每次健康检查响应的最大超时时间。单位:秒。

取值范围:1~300

默认值:5

HealthCheckConnectPort Integer 80

健康检查使用的端口。

取值范围:1~65535

不设置此参数时,表示使用后端服务端口(BackendServerPort)。

healthCheckInterval Integer 3

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

取值范围:1~50

HealthCheckDomain String 172.XX.XX.6

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

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

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

当TCP监听需要使用HTTP健康检查时可配置此参数,如不配置则按TCP健康检查。

HealthCheckHttpCode String http_2xx,http_3xx

健康检查正常的HTTP状态码,多个状态码用半角逗号(,)分割。取值:

  • http_2xx(默认值)
  • http_3xx
  • http_4xx
  • http_5xx
HealthCheckType String tcp

健康检查类型。取值:

  • tcp(默认值)
  • http
VServerGroupId String rsp-cige6j****

虚拟服务器组ID。

MasterSlaveServerGroupId String rsp-0bfucw****

主备服务器组ID。

说明 服务器组ID和主备服务器组ID只能选择一个。
AclId String 1323

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

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

访问控制类型:

  • white: 仅转发来自所选访问控制策略组中设置的IP地址或地址段的请求,白名单适用于只允许特定IP访问的场景。

    设置白名单存在一定业务风险。

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

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

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

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

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

  • on:开启。
  • off(默认值):不开启。
Description String tcp_80

自定义监听名称。

长度限制为1~256个字符,支持中文、字母、数字、短划线(-)、正斜线(/)、半角句号(.)和下划线(_)。

ConnectionDrain String off

是否开启连接优雅中断。取值:

  • on:开启。
  • off:不开启。
ConnectionDrainTimeout Integer 300

设置连接优雅中断超时时间。单位:秒。

取值范围:10~900

说明ConnectionDrain取值为on时,该选项必选。
ProxyProtocolV2Enabled Boolean false

是否支持通过Proxy Protocol协议携带客户端源地址到后端服务器。取值:

  • true:是。
  • false(默认值):否。
HealthCheckSwitch String on

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

  • on(默认值):开启。
  • off:不开启。

返回数据

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

请求ID。

示例

请求示例

http(s)://[Endpoint]/?RegionId=cn-hangzhou
&Action=CreateLoadBalancerTCPListener
&LoadBalancerId=lb-bp1b6c719dfa08ex****
&ListenerPort=80
&BackendServerPort=80
&Bandwidth=-1
&Scheduler=wrr
&PersistenceTimeout=0
&EstablishedTimeout=500
&HealthyThreshold=4
&UnhealthyThreshold=4
&HealthCheckConnectTimeout=100
&HealthCheckConnectPort=80
&healthCheckInterval=3
&HealthCheckDomain=172.XX.XX.6
&HealthCheckURI=/test/index.html
&HealthCheckHttpCode=http_2xx,http_3xx
&HealthCheckType=tcp
&VServerGroupId=rsp-cige6j****
&MasterSlaveServerGroupId=rsp-0bfucw****
&AclId=1323
&AclType=black
&AclStatus=off
&Description=tcp_80
&ConnectionDrain=off
&ConnectionDrainTimeout=300
&ProxyProtocolV2Enabled=false
&HealthCheckSwitch=on
&公共请求参数

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

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

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

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

错误码

HttpCode 错误码 错误信息 描述
400 InvalidParameterValue.SpecNotSupport The loadBalancer of shared spec does not support the parameter value, %s. 共享型负载均衡实例不支持指定的参数取值。
400 OperationNotSupport.Acl The cloud box instance does not support acl. 云盒实例不支持配置访问控制。
400 InvalidParameterValue.RegionNotSupport The region does not support the parameter value, %s. 当前地域不支持指定的参数取值。
400 Abs.VServerGroupIdAndMasterSlaveServerGroupId.MissMatch The parameters VServerGroupId or MasterSlaveServerGroupId miss match. 参数VServerGroupId或MasterSlaveServerGroupId不匹配。
400 IpVersionConflict The ip version of this LoadBalancer and the Acl is conflict. 指定负载均衡的IP版本与ACL支持的IP类型冲突。
400 InvalidParameterValue.ZoneNotSupport The zone does not support the parameter value, %s. 当前可用区不支持指定参数取值。
400 ListenerProcessing A previous configuration of the listener is pending, please try again later. 当前监听正在配置中,请稍后重试。
400 AclNotExist Acl does not exist. 指定的Acl不存在。
400 InvalidParameter.ListenerPortConflict There is conflict listener port exists. 指定的监听端口已存在。
400 InvalidParameter.ZoneNotSupport The zone does not support the parameter %s. 当前可用区不支持指定参数。
400 InvalidParam.VServerGroupId The specified VServerGroupId is invalid. 指定的VServerGroupId无效。请检查参数约束,并在修改后重试。
400 MissingParam.HealthCheckConnectPort The parameter HealthCheckConnectPort is required. 参数HealthCheckConnectPort缺失。
400 InvalidParam.ListenerPort The specified ListenerPort is invalid. 指定的ListenerPort无效。请检查参数约束,并在修改后重试。
400 InvalidParam.StartPort The specified StartPort is invalid. 指定的StartPort无效。请检查参数约束,并在修改后重试。
400 InvalidParamSize.PortRange The size of param PortRange is invalid. 指定的PortRange无效。请检查参数约束,并在修改后重试。
400 InvalidParam.EndPort The specified EndPort is invalid. 指定的EndPort无效。请检查参数约束,并在修改后重试。
400 QuotaLimitExceeds.AclAttachedToListener %s. Acl绑定监听数已达到配额上限。
400 QuotaLimitExceeds.TotalAclEntry %s. Acl条目数已达到配额上限。
400 Duplicated.AclEntry %s. Acl条目重复。
400 OperationUnsupported.SetAccessControl The singleTunnel/anyTunnel loadbalancer does not support config AccessControlList. 操作被拒绝,原因是Single Tunnel和Any Tunnel 类型负载均衡实例不支持配置Acl。
400 InvalidParam.PortRange The specified PortRange is invalid. 指定的PortRange无效。请检查参数约束,并在修改后重试。
400 InvalidParameter.RegionNotSupport The region does not support the parameter: %s. 当前区域不支持指定参数。
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 ListenerPortConflict The specified ListenerPort is conflict with other listener. 指定的监听端口号已被占用。
400 ResourceNotFound.VServerGroup %s. 指定的服务器组不存在。
400 IllegalParam.FailoverThreshold The parameter FailoverThreshold is illegal. 指定的FailoverThreshold无效。请检查参数约束,并在修改后重试。
400 IllegalParam.FailoverStrategy The parameter FailoverStrategy is illegal. 指定的FailoverStrategy无效。请检查参数约束,并在修改后重试。
400 MasterSlaveServerConflict The servers are conflict for MasterSlaveGroup. 主备服务器组的后端服务器冲突。
400 OperationDenied.HealthCheckClosedForMasterSlaveMode The operation is denied because of HealthCheckClosedForMasterSlaveMode. 操作被拒绝,原因是主备模式下要求必须开启健康检查。
400 IllegalParam.HealthCheck The param of HelathCheck is illegal. 指定的HealthCheck无效。请检查参数约束,并在修改后重试。
400 Mismatch.SlbSpecTypeAndListenerProtocol The SlbSpecType and ListenerProtocol are mismatched. 实例规格类型和监听类型不匹配。
400 OperationDenied.FullNatModeNotAllowed The operation is not allowed because of FullNatModeNotAllowed. 操作被拒绝,原因是不支持FullNat模式。
400 OperationDenied.OnlyIpv4SlbSupport The operation is not allowed because of OnlyIpv4SlbSupport. 操作被拒绝,原因是只有IPV4实例支持开启FULL NAT模式。
400 SpecNotSupportParameter The instance with share spec does not support FullNatEnabled parameter. 共享型实例不支持FullNatEnabled参数。

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