创建监听器
功能介绍
创建与负载均衡器绑定的监听器。
调试
您可以在API Explorer中直接运行调试该接口。
URI
POST /v2.0/lbaas/listeners
请求消息
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
listener |
是 |
Object |
listener对象。详见表2。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
tenant_id |
否 |
String |
监听器所在的项目ID。 获取方法详见获取项目ID。 需要和token中的project_id一致。 支持的最大字符长度:255 |
project_id |
否 |
String |
此参数和tenant_id参数含义一样,均指监听器所在的项目ID。 获取方法详见获取项目ID。 需要和token中的project_id一致。 |
name |
否 |
String |
监听器名称。 支持的最大字符长度:255 |
description |
否 |
String |
监听器描述信息。 支持的最大字符长度:255 |
protocol |
是 |
String |
监听器的监听协议。 取值范围:TCP、HTTP、UDP、TERMINATED_HTTPS。 |
protocol_port |
是 |
Integer |
监听器的监听端口。 取值范围:[1, 65535]。
说明:
如果监听协议为UDP,端口号不支持4789。 |
loadbalancer_id |
是 |
String |
监听器关联的负载均衡器 ID。 |
connection_limit |
否 |
Integer |
监听器的最大连接数。 取值范围:[-1, 2147483647]。默认为-1,无限制。 该字段为预留字段,暂未启动。 |
admin_state_up |
否 |
Boolean |
监听器的管理状态。 该字段为预留字段,暂未启用。默认为true。 |
http2_enable |
否 |
Boolean |
HTTP2功能的开启状态。 取值范围:true/false。true:开启。false:关闭。 默认为false。 仅针对监听器的协议为TERMINATED_HTTPS有意义。 |
default_pool_id |
否 |
String |
监听器的默认后端云服务器组ID。 当请求没有匹配的转发策略时,转发到默认后端云服务器上处理。当该字段为null时,表示监听器无默认的后端云服务器组。
default_pool_id有如下限制:
监听器和与之绑定的后端云服务器的对应关系如下:
|
default_tls_container_ref |
否 |
String |
监听器使用的服务器证书ID。详细参见SSL证书管理。 当protocol参数为TERMINATED_HTTPS时,为必选字段。 当protocol参数为非TERMINATED_HTTPS时,默认值:null。 支持的最大字符长度:128
说明:
仅当监听器的protocol参数为TERMINATED_HTTPS时,该字段有意义。 |
client_ca_tls_container_ref |
否 |
String |
监听器使用的CA证书ID。详细参见SSL证书管理。 默认值:null 支持的最大字符长度:128
说明:
仅当监听器的protocol参数为TERMINATED_HTTPS时,该字段有意义。 |
sni_container_refs |
否 |
Array |
监听器使用的SNI证书(带域名的服务器证书)ID的列表。 该字段不为空列表时,SNI特性开启。该字段为空列表时,SNI特性关闭。 默认值:[]
说明:
仅当监听器的protocol参数为TERMINATED_HTTPS时,该字段有意义。 |
insert_headers |
否 |
Object |
HTTP扩展头部,内部字段全量同步,不选则为默认值。 可以将从负载均衡器到后端云服务器的路径中需要被后端云服务器用到的信息写入HTTP中,随报文传递到后端云服务器上。 例如可通过X-Forwarded-ELB-IP开关,将负载均衡器的弹性公网IP传到后端云服务器。详细参见表3。
说明:
仅当监听器的协议为HTTP、TERMINATED_HTTPS时,该字段有意义。 |
tls_ciphers_policy |
否 |
String |
监听器使用的安全策略,仅对TERMINATED_HTTPS协议类型的监听器有效,且默认值为tls-1-0。 取值包括:tls-1-0-inherit,tls-1-0, tls-1-1, tls-1-2, tls-1-2-strict多种安全策略。各安全策略使用的加密套件列表详细参见表4。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Forwarded-ELB-IP |
否 |
Boolean |
负载均衡器弹性公网IP透传开关。打开时可以将负载均衡器的弹性公网IP从报文的HTTP头中带到后端云服务器。 取值范围:true/false。true:开启。false:关闭。 默认:关闭。 |
X-Forwarded-Host |
否 |
Boolean |
负载均衡器X-Forwarded-Host重写开关。打开时可以将客户请求头的X-Forwarded-Host设置为请求头的Host带到后端云服务器 取值范围:true/false。true:开启。false:关闭。 默认:开启。 |
安全策略 |
支持的TLS版本类型 |
使用的加密套件列表 |
---|---|---|
tls-1-0-inherit |
TLS 1.2 TLS 1.1 TLS 1.0 |
ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-SHA256:AES256-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-SHA:AES256-SHA:DHE-DSS-AES128-SHA:CAMELLIA128-SHA:EDH-RSA-DES-CBC3-SHA:DES-CBC3-SHA:ECDHE-RSA-RC4-SHA:RC4-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:DHE-RSA-CAMELLIA256-SHA:DHE-DSS-CAMELLIA256-SHA:CAMELLIA256-SHA:EDH-DSS-DES-CBC3-SHA:DHE-RSA-CAMELLIA128-SHA:DHE-DSS-CAMELLIA128-SHA |
tls-1-0 |
TLS 1.2 TLS 1.1 TLS 1.0 |
ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-SHA256:AES256-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-SHA:AES256-SHA |
tls-1-1 |
TLS 1.2 TLS 1.1 |
|
tls-1-2 |
TLS 1.2 |
|
tls-1-2-strict |
TLS 1.2 |
ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-SHA256:AES256-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384 |
响应消息
参数 |
参数类型 |
描述 |
---|---|---|
listener |
Object |
监听器对象。详见表6。 |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
监听器ID。 |
tenant_id |
String |
监听器所在的项目ID。 |
project_id |
String |
此参数和tenant_id参数含义一样,均指监听器所在的项目ID。 |
name |
String |
监听器名称。 |
description |
String |
监听器描述信息。 |
protocol |
String |
监听器的监听协议。 支持TCP、HTTP、UDP、TERMINATED_HTTPS。 |
protocol_port |
Integer |
监听器的监听端口。 取值范围:[1, 65535]。 |
loadbalancers |
Array |
监听器关联的负载均衡器 ID。详见表7。 |
connection_limit |
Integer |
监听器的最大连接数。 取值范围:[-1, 2147483647]。默认为-1,无连接数限制。 该字段为预留字段,暂未启动。 |
admin_state_up |
Boolean |
监听器的管理状态。 该字段为预留字段,暂未启用。取值范围:true/false。
|
http2_enable |
Boolean |
HTTP2功能的开启状态。 取值范围:true/false。true:开启。false:关闭。 仅针对监听器的协议为TERMINATED_HTTPS有意义。 |
default_pool_id |
String |
监听器的默认后端云服务器组ID。 当请求没有匹配的转发策略时,转发到默认后端云服务器上处理。当该字段为null时,表示监听器无默认的后端云服务器组。 |
default_tls_container_ref |
String |
监听器使用的服务器证书ID。详细参见SSL证书管理。 当protocol参数为TERMINATED_HTTPS时,为必选字段。 |
client_ca_tls_container_ref |
String |
监听器使用的CA证书ID。详细参见SSL证书管理。 |
sni_container_refs |
Array |
监听器使用的SNI证书(带域名的服务器证书)ID的列表。 该字段不为空列表时,SNI特性开启。该字段为空列表时,SNI特性关闭。 |
tags |
Array |
监听器的标签。 |
created_at |
String |
监听器的创建时间。YYYY-MM-DDTHH:MM:SS |
updated_at |
String |
监听器的更新时间。YYYY-MM-DDTHH:MM:SS |
insert_headers |
Object |
HTTP扩展头部,内部字段全量同步,不选则为默认值。 可以将从负载均衡器到后端云服务器的路径中需要被后端云服务器用到的信息写入HTTP中,随报文传递到后端云服务器上。 例如可通过X-Forwarded-ELB-IP开关,将负载均衡器的弹性公网IP传到后端云服务器。详细参见表8。 仅当监听器的协议为HTTP、TERMINATED_HTTPS时,该字段有意义。 |
tls_ciphers_policy |
String |
监听器使用的安全策略,仅对TERMINATED_HTTPS协议类型的监听器有效,且默认值为tls-1-0。 取值包括:tls-1-0-inherit,tls-1-0, tls-1-1, tls-1-2, tls-1-2-strict多种安全策略。各安全策略使用的加密套件列表详细参见表4。 |
请求示例
- 请求样例1 创建TCP类型的监听器
POST https://{Endpoint}/v2.0/lbaas/listeners { "listener": { "protocol_port": 80, "protocol": "TCP", "loadbalancer_id": "0416b6f1-877f-4a51-987e-978b3f084253", "name": "listener-test", "admin_state_up": true } }
- 请求样例2 创建TERMINATED_HTTPS类型的监听器,并打开透传ELB的EIP开关。
POST https://{Endpoint}/v2.0/lbaas/listeners { "listener": { "protocol_port": 25, "protocol": "TERMINATED_HTTPS", "default_tls_container_ref": "02dcd56799e045bf8b131533cc911dd6", "loadbalancer_id": "0416b6f1-877f-4a51-987e-978b3f084253", "name": "listener-test", "admin_state_up": true, "insert_headers":{ "X-Forwarded-ELB-IP":true, } } }
- 请求样例3 创建开启SNI的监听器
POST https://{Endpoint}/v2.0/lbaas/listeners { "listener": { "protocol_port": 27, "protocol": "TERMINATED_HTTPS", "loadbalancer_id": "6bb85e33-4953-457a-85a9-336d76125b7b", "name": "listener-test", "admin_state_up": true, "default_tls_container_ref":"02dcd56799e045bf8b131533cc911dd6", "sni_container_refs": ["e15d1b5000474adca383c3cd9ddc06d4", "5882325fd6dd4b95a88d33238d293a0f"] } }
响应示例
- 响应样例1
{ "listener": { "protocol_port": 80, "protocol": "TCP", "description": "", "client_ca_tls_container_ref": null, "default_tls_container_ref": null, "admin_state_up": true, "http2_enable": false, "loadbalancers": [ { "id": "0416b6f1-877f-4a51-987e-978b3f084253" } ], "tenant_id": "145483a5107745e9b3d80f956713e6a3", "project_id": "145483a5107745e9b3d80f956713e6a3", "sni_container_refs": [], "connection_limit": -1, "default_pool_id": null, "tags": [], "id": "b7f32b52-6f17-4b16-9ec8-063d71b653ce", "name": "listener-test", "insert_headers":{}, "created_at": "2018-07-25T01:54:13", "updated_at": "2018-07-25T01:54:14" } }
- 响应样例2
{ "listener": { "insert_headers": {}, "protocol_port": 25, "protocol": "TERMINATED_HTTPS", "description": "", "default_tls_container_ref": "02dcd56799e045bf8b131533cc911dd6", "sni_container_refs": [], "loadbalancers": [ { "id": "0416b6f1-877f-4a51-987e-978b3f084253" } ], "tenant_id": "601240b9c5c94059b63d484c92cfe308", "project_id": "601240b9c5c94059b63d484c92cfe308", "created_at": "2019-01-21T12:38:31", "client_ca_tls_container_ref": null, "connection_limit": -1, "updated_at": "2019-01-21T12:38:31", "http2_enable": false, "admin_state_up": true, "default_pool_id": null, "id": "b56634cd-5ba8-460e-b5a2-6de5ba8eaf60", "tags": [], "name": "listener-test", "insert_headers":{ "X-Forwarded-ELB-IP":true, } } }
- 响应样例3
{ "listener": { "insert_headers": {}, "protocol_port": 27, "protocol": "TERMINATED_HTTPS", "description": "", "default_tls_container_ref": "02dcd56799e045bf8b131533cc911dd6", "sni_container_refs": [ "5882325fd6dd4b95a88d33238d293a0f", "e15d1b5000474adca383c3cd9ddc06d4" ], "loadbalancers": [ { "id": "6bb85e33-4953-457a-85a9-336d76125b7b" } ], "tenant_id": "601240b9c5c94059b63d484c92cfe308", "project_id": "601240b9c5c94059b63d484c92cfe308", "created_at": "2019-01-21T12:43:55", "client_ca_tls_container_ref": null, "connection_limit": -1, "updated_at": "2019-01-21T12:43:55", "http2_enable": false, "admin_state_up": true, "default_pool_id": null, "insert_headers":{ "id": "b2cfda5b-52fe-4320-8845-34e8d4dac2c7", "tags": [], "name": "listener-test" } }
返回码
请参见状态码。