更新时间:2024-01-18 GMT+08:00
分享

创建监听器

功能介绍

创建与负载均衡器绑定的监听器。

接口约束

  • 只有具有ELB管理员权限的用户才能指定connection_limit的值。
  • protocol参数只支持TCP、UDP、HTTP和TERMINATED_HTTPS。

调试

您可以在API Explorer中直接运行调试该接口。

URI

POST /v2/{project_id}/elb/listeners

表1 参数说明

参数

是否必选

参数类型

描述

project_id

String

操作用户的项目ID。

获取方法详见获取项目ID

请求消息

表2 请求参数

参数

是否必选

参数类型

描述

listener

Listener object

listener对象。详见表3

表3 listener字段说明

参数

是否必选

参数类型

描述

tenant_id

String

监听器所在的项目ID。

获取方法详见获取项目ID

需要和token中的project_id一致。

支持的最大字符长度:255

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_pool。
  • 不能更新为其他监听器关联的转发策略所使用的pool。
监听器和与之绑定的后端云服务器的对应关系如下:
  • 监听器的protocol为TCP时,后端云服务器组的protocol必须为TCP。
  • 监听器的protocol为UDP时,后端云服务器组的protocol必须为UDP。
  • 监听器的protocol为HTTP或TERMINATED_HTTPS时,后端云服务器组的protocol必须为HTTP。

default_tls_container_ref

String

监听器使用的服务器证书ID。详细参见SSL证书管理

当protocol参数为TERMINATED_HTTPS时,为必选字段。

当protocol参数为非TERMINATED_HTTPS时,默认值:null。

支持的最大字符长度:128

说明:

仅针对监听器的协议为TERMINATED_HTTPS有意义。

client_ca_tls_container_ref

String

监听器使用的CA证书ID。详细参见SSL证书管理

默认值:null

支持的最大字符长度:128

说明:

仅针对监听器的协议为TERMINATED_HTTPS有意义。

sni_container_refs

Array

监听器使用的SNI证书(带域名的服务器证书)ID的列表。

该字段不为空列表时,SNI特性开启。该字段为空列表时,SNI特性关闭。

默认值:[]

说明:

仅针对监听器的协议为TERMINATED_HTTPS有意义。

insert_headers

InsertHeaders object

HTTP扩展头部,内部字段全量同步,不选则为默认值。

可以将从负载均衡器到后端云服务器的路径中需要被后端云服务器用到的信息写入HTTP中,随报文传递到后端云服务器上。

例如可通过X-Forwarded-ELB-IP开关,将负载均衡器的弹性公网IP传到后端云服务器。详细参见表4

说明:

仅当监听器的协议为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多种安全策略。各安全策略使用的加密套件列表详细参见表5

protection_status

String

当前资源保护状态, 取值:

  • nonProtection: 不保护,默认值为nonProtection
  • consoleProtection: 控制台修改保护

protection_reason

String

资源保护的原因。仅当protection_status为consoleProtection时有效。

表4 insert_headers字段说明

参数

是否必选

参数类型

描述

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:关闭。

默认:开启。

表5 tls_ciphers_policy取值说明

安全策略

支持的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

响应消息

表6 响应参数

参数

参数类型

描述

listener

Listener object

监听器对象。详见表7 listener字段说明

表7 listener字段说明

参数

参数类型

描述

id

String

监听器ID。

tenant_id

String

监听器所在的项目ID。

支持的最大字符长度:255

project_id

String

此参数和tenant_id参数含义一样,均指监听器所在的项目ID。

name

String

监听器名称。

注意:若名称为空,则在控制台的监听器列表无法选择并查看监听器详情。

支持的最大字符长度:255

description

String

监听器描述信息。

支持的最大字符长度:255

protocol

String

监听器的监听协议。

支持TCP、HTTP、UDP、TERMINATED_HTTPS。

protocol_port

Integer

监听器的监听端口。

取值范围:[1, 65535]。

loadbalancers

Array of Loadbalancers objects

监听器关联的负载均衡器 ID。详细参见表8

connection_limit

Integer

监听器的最大连接数。

取值范围:[-1, 2147483647]。默认为-1,无连接数限制。

该字段为预留字段,暂未启动。

admin_state_up

Boolean

监听器的管理状态。

该字段为预留字段,暂未启用。取值范围:true/false。

  • 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时,为必选字段。

支持的最大字符长度:128

client_ca_tls_container_ref

String

监听器使用的CA证书ID。

支持的最大字符长度:128

详细参见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

InsertHeaders object

HTTP扩展头部,内部字段全量同步,不选则为默认值。

可以将从负载均衡器到后端云服务器的路径中需要被后端云服务器用到的信息写入HTTP中,随报文传递到后端云服务器上。

例如可通过X-Forwarded-ELB-IP开关,将负载均衡器的弹性公网IP传到后端云服务器。详细参见表9

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多种安全策略。各安全策略使用的加密套件列表。详细参见表10

protection_status

String

String

当前资源保护状态, 取值:

  • nonProtection: 不保护,默认值为nonProtection
  • consoleProtection: 控制台修改保护

protection_reason

String

String

资源保护的原因。仅当protection_status为consoleProtection时有效。

表8 loadbalancers字段说明

参数

是否必选

参数类型

描述

id

String

关联的负载均衡器id

表9 insert_headers字段说明

参数

是否必选

参数类型

描述

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:关闭。

默认:开启。

表10 tls_ciphers_policy取值说明

安全策略

支持的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

请求示例

  • 请求样例1 创建TCP监听器
    POST https://{Endpoint}/v2/145483a5107745e9b3d80f956713e6a3/elb/listeners
    
    {
        "listener": {
            "protocol_port": 80,
            "protocol": "TCP",
            "loadbalancer_id": "0416b6f1-877f-4a51-987e-978b3f084253",
            "name": "listener-test",
            "insert_headers":{},
           
            "admin_state_up": true
        }
    }
  • 请求样例2 创建TERMINATED_HTTPS类型的监听器
    POST https://{Endpoint}/v2/601240b9c5c94059b63d484c92cfe308/elb/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
        } 
    }
  • 请求样例3 创建开启SNI的监听器
    POST https://{Endpoint}/v2/601240b9c5c94059b63d484c92cfe308/elb/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": [],
            "insert_headers":{},
            "id": "b7f32b52-6f17-4b16-9ec8-063d71b653ce",
            "name": "listener-test",
            "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,
            "insert_headers":{},
            "id": "b56634cd-5ba8-460e-b5a2-6de5ba8eaf60",
            "tags": [],
            "name": "listener-test"
        }
    }
  • 响应样例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"
        }
    }

返回码

请参见状态码

相关文档