监听器

 

DescribeLoadBalancerListeners

更新时间 2023-09-06

获取负载均衡器的监听器。

可根据负载均衡器 ID,监听器 ID 作为过滤条件获取监听器列表。 如果不指定任何过滤条件,默认返回你拥有的负载均衡器下面的所有监听器。

请求参数

参数 参数类型 说明 是否必选
loadbalancer_listeners.n String 监听器 ID。 No
loadbalancer String 负载均衡器 ID。 No
verbose Integer 是否返回冗长的信息,若为1,则返回监听器下的后端服务信息。 No
offset Integer 数据偏移量,默认为 0。 No
limit Integer 返回数据长度。默认为 20,最大 100。 No
zone String 区域 ID,注意要小写。 Yes

公共参数

返回数据

参数 参数类型 说明
action String 响应动作。
loadbalancer_listener_set Array JSON 格式的监听器数据列表,每项参数可见 Response Item
total_count Integer 根据过滤条件得到的监听器总数

Response Item

参数 参数类型 说明
loadbalancer_listener_id String 监听器 ID。
loadbalancer_listener_name String 监听器名称。
backends Array
监听器的后端服务列表,每项数据格式为:
{
“loadbalancer_backend_id”: “lbb-1234abcd”,
“loadbalancer_backend_name”: “test backend”,
“port”: “80”,
“weight”: “5”,
“resource_id”: “i-1234abcd”,
“loadbalancer_id”: “lb-1234abcd”,
“loadbalancer_listener_id”: “lbl-1234abcd”,
“create-time”: “2014-02-14T00:58:43Z”,
}
只有在请求参数 verbose=1 时才会返回此信息。
balance_mode String 均衡方式。支持以下三种:
  • roundrobin :轮询
  • leastconn:最小连接
  • source:源地址
session_sticky String 会话保持,即拥有同一个 cookie 的请求始终发往同一后台服务器。会话保持提供两种方式:
* Insert: 由负载均衡器来插入cookie,此时 cookie 名字由负载均衡器来指定, 而使用者只需要提供 cookie 的超时时间.
* Rewrite: 由使用者自己来指定并维护 cookie,此时使用者需要主动向 client 端插入 cookie,并提供过期时间。负载均衡器通过重写该 cookie (在 cookie name 前面加上 server 标题),借此实现会话保持。当 request 重新转发给后端服务器时,负载均衡器会主动将 server 标题删除,来实现 cookie 到后端服务器的透明。
格式(只对 HTTP 协议有意义):
* Rewrite:prefix|cookie_name,例如:prefix|sk
* Insert:insert|cookie_timeout,例如:insert|3600
cookie_timeout 可以为 0,表示永远不超时,为空表示禁用会话保持。
create_time TimeStamp 监听器创建时间,为UTC时间,格式可参见 ISO8601.
forwardfor Integer 转发请求时需要的 HTTP Header。
此值是由当前支持的3个附加头字段以“按位与”的方式得到的十进制数:
* X-Forwarded-For: bit 位是1 (二进制的1),表示是否将真实的客户端IP传递给后端。 一般情况下,后端 server 得到的 client IP 是负载均衡器本身的 IP 地址。 在开启本功能之后,后端服务器可以通过请求中的 X-Forwarded-For 字段来获取真实的用户 IP。
* QC-LBID: bit 位是2 (二进制的10),表示 Header 中是否包含 LoadBalancer 的 ID。
* QC-LBIP: bit 位是3 (二进制的100),表示 Header 中是否包含 LoadBalancer 的公网 IP。
例如 Header 中若要包含 X-Forwarded-For 和 QC-LBIP,则 forwarfor 的值为:“X-Forwarded-For | QC-LBIP”,二进制结果为 101,最后转换成十进制得到 5。
healthy_check_method String 监听器健康检查方式。检查方式有 HTTP 和 TCP 两种。格式为:
* TCP: tcp。
* HTTP: http|url|host ,例如 http|/index.html 或 http|/index.html|vhost.example.com 。
默认是 TCP。
healthy_check_option String 监听器健康检查参数配置,只有当启用了健康检查了之后才有效。格式为:
inter | timeout | fall | rise ,表示
检查间隔(2-60s) | 超时时间(5-300s) | 不健康阈值(2-10次) | 健康阈值(2-10次)。
例如:10|5|2|5
listeners.n.listener_option Integer 附加选项。此值是由当前支持的2个附加选项以“按位与”的方式得到的十进制数:
* 取消URL校验: bit 位是 1 (二进制的1),表示是否可以让负载均衡器接受不符合编码规范的 URL,例如包含未编码中文字符的 URL 等。
* 获取客户端IP: bit 位是 2 (二进制的10),表示是否将客户端的IP直接传递给后端。 开启本功能后,负载均衡器对与后端是完全透明的。后端云服务器 TCP 连接得到的源地址是客户端的 IP, 而不是负载均衡器的 IP。注意:仅支持受管网络中的后端。使用基础网络后端时,此功能无效。
* 数据压缩: bit 位是 4 (二进制的 100), 表示是否使用 gzip 算法压缩文本数据,以减少网络流量。
* 禁用不安全的加密方式: bit 位是 8 (二进制的 1000), 禁用存在安全隐患的加密方式, 可能会不兼容低版本的客户端。

示例

请求示例:

https://api.qingcloud.com/iaas/?action=DescribeLoadBalancerListeners
&loadbalancers.1=lb-1234abcd
&verbose=1
&COMMON_PARAMS

返回示例:

{
  "action":"DescribeLoadBalancerListenersResponse",
  "total_count":1,
  "loadbalancer_listener_set":[
    {
      "forwardfor":1,
      "loadbalancer_listener_id":"lbl-r3c8ys2a",
      "balance_mode":"roundrobin",
      "listener_protocol":"http",
      "backend_protocol":"http",
      "healthy_check_method":"tcp",
      "healthy_check_option":"2|5|2|2",
      "session_sticky":"insert|3600",
      "loadbalancer_listener_name":null,
      "backends":[
        {
          "loadbalancer_backend_id":"lbb-z0k2bggx",
          "loadbalancer_backend_name":null,
          "weight":5,
          "port":80,
          "resource_id":"i-6rxncvy1",
          "loadbalancer_listener_id":"lbl-r3c8ys2a",
          "loadbalancer_id":"lb-bnq972ht"
          "create_time":"2013-09-30T23:13:01Z",
        },
        {
          "loadbalancer_backend_id":"lbb-zumc7oze",
          "loadbalancer_backend_name":null,
          "weight":5,
          "port":80,
          "resource_id":"i-u1szvwkh",
          "loadbalancer_listener_id":"lbl-r3c8ys2a",
          "loadbalancer_id":"lb-bnq972ht"
          "create_time":"2013-09-30T23:13:01Z",
        }
      ],
      "create_time":"2013-09-30T07:34:07Z",
      "loadbalancer_id":"lb-bnq972ht",
      "listener_port":80,
      "listener_option":2
    },
  ],
  "ret_code":0
}
这篇文档解决了您的问题吗?
0
0