监听是用于检查连接请求的过程。用户可以根据业务需求为ALB实例创建监听来转发客户端请求,并对监听进行修改、启停、删除等管理操作。
监听协议选型
创建监听前,建议根据业务需求选择合适的监听协议。ALB支持HTTP、HTTPS和QUIC三种七层监听协议,不同协议的适用场景和配置要求如下表所示。
协议 | 适用场景 | 是否需要SSL证书 | 支持的后端协议 | 特性 |
HTTP | 需要对数据内容进行识别的应用,如Web应用、手机小游戏等。 | 否 | HTTP、HTTPS | 默认支持WebSocket协议。 |
HTTPS | 需要加密传输的应用。支持在ALB实例与客户端之间建立SSL/TLS加密会话。 | 是(服务器证书必选,CA证书双向认证时必选) | HTTP、HTTPS、gRPC(需开启HTTP 2.0) | 支持HTTP 2.0、双向认证(CA证书)、TLS安全策略、QUIC协议升级。默认支持WebSocket Secure(WSS)协议。 |
QUIC | 网络信号较弱、频繁切换Wi-Fi和移动网络等场景。可有效解决网络、视频卡顿问题,提升音视频资源访问效率,同时保障数据传输安全性。 | 是(服务器证书必选) | HTTP | 基于UDP传输,连接建立更快,支持连接迁移(网络切换不断连)。可单独使用或与HTTPS监听联合使用。 |
前提条件
创建/删除监听
控制台
ALB支持以下两种方式创建监听:
创建监听:通过配置向导逐步完成,支持自定义高级配置。
快速创建监听:只需配置监听协议、监听端口和服务器组(HTTPS/QUIC还需配置服务器证书,HTTPS还需选择TLS安全策略)。
创建监听
步骤一:配置监听
前往ALB控制台的实例页面,单击目标实例ID,在监听页签下单击创建监听。
在配置监听配置向导,完成以下配置,然后单击下一步。
选择监听协议:HTTP、HTTPS或QUIC。
监听端口:端口范围为1~65535。通常HTTP使用80端口,HTTPS使用443端口。
同一个ALB实例内,相同协议的监听端口不能重复。此外,HTTP和HTTPS监听也不能使用相同端口。
监听名称:输入监听的自定义名称。
标签:以键值对形式标记监听。
高级配置:单击修改展开。
启用HTTP2.0:仅HTTPS监听支持。
连接空闲超时时间:取值范围1~600秒,默认15秒。超时后连接将被断开。如需提升最大超时时间,请前往配额中心申请。
当监听协议为HTTP时,连接空闲超时时间对HTTP 2.0请求暂不生效。
连接请求超时时间:取值范围1~600秒,默认60秒。超时后返回HTTP 504错误码。如需提升最大超时时间,请前往配额中心申请。
数据压缩:开启后对响应内容进行压缩,仅当
Content-Length超过1024字节时触发。支持Brotli(所有类型)和Gzip,客户端同时支持时优先使用Brotli。Gzip支持的类型:
text/xml、text/plain、text/css、application/javascript、application/x-javascript、application/rss+xml、application/atom+xml、application/xml、application/json。查找真实客户端源IP:开启后,ALB从X-Forwarded-For头字段中提取真实客户端IP。需设置可信IP列表:
0.0.0.0/0:取X-Forwarded-For中最左边的地址。proxy1 IP;proxy2 IP;..:从右往左取第一个不在列表中的值。
开启后,转发规则中基于SourceIp匹配和QPS(基于客户端源IP限速)将使用真实客户端IP。
QUIC监听不支持此配置项。
仅标准版、WAF增强版实例支持,基础版不支持。
附加HTTP头字段:选择要添加的HTTP头字段,用于获取客户端IP、监听协议、端口等信息。各头字段的详细说明,请参见HTTP头字段。
开启QUIC升级:适用于HTTPS监听与QUIC监听联合使用的场景。在关联的QUIC监听中选择已创建的QUIC监听。开启后,ALB会向客户端通告HTTP/3协议,支持HTTP/3的客户端将优先通过QUIC监听访问,不支持时自动回退为HTTPS。
仅HTTPS监听支持此配置项。
步骤二:配置SSL证书(仅HTTPS/QUIC监听)
证书 | 说明 | 单向认证是否需要 | 双向认证是否需要 |
服务器证书 | 证明服务器身份,由客户端校验是否受信。更多信息,请参见什么是SSL证书。 | 是 | 是 |
CA证书 | 服务器用CA证书验证客户端证书的签名,未通过则拒绝连接。 | 否 | 是 |
新证书应用后通常一到三分钟生效。
QUIC监听仅需配置服务器证书,不支持双向认证。
如需多域名访问或挂载多个服务器证书,可为监听添加扩展证书。
在配置SSL证书配置向导,选择服务器证书。
仅HTTPS监听:选择TLS安全策略。
系统提供多种预定义策略可直接选用。如需自定义TLS协议版本和加密算法套件,可单击创建 TLS 安全策略并创建自定义策略。更多信息,请参见TLS安全策略。
仅HTTPS监听(可选):打开启用双向认证,选择CA证书来源并选择CA证书。
选择CA证书来源为阿里云签发,在选择默认CA证书下拉框中选择CA证书。如果没有可选的CA证书,可单击购买CA证书以创建新CA证书。
选择CA证书来源为非阿里云签发,在选择默认CA证书下拉框中选择CA证书。如果没有可选的CA证书,可单击上传自签CA证书,通过证书应用仓库上传自签名CA证书。
仅标准版和WAF增强版实例支持双向认证,基础版不支持。
步骤三:选择服务器组
在选择服务器组配置向导,选择服务器组,并查看后端服务器信息,然后单击下一步。
步骤四:配置审核
在配置审核页面,确认配置信息,单击提交。
快速创建监听
前往ALB控制台的实例页面,单击目标实例ID,在监听页签下单击快速创建监听。
在快速创建监听对话框中,完成以下参数的配置,然后单击确定。
删除监听
前往ALB控制台的实例页面,单击目标实例ID,在监听页签找到目标监听,在操作列选择
> 删除。在弹出的对话框中,单击确定。
API
调用CreateListener创建监听。
调用DeleteListener删除监听。
修改监听
监听协议和监听端口创建后不支持修改。如需更改,请删除监听后重新创建。
控制台
前往ALB控制台的实例页面,单击目标实例ID。
单击监听页签,找到目标监听,选择以下一种方法,修改监听基本信息。
单击目标监听ID或在操作列单击查看详情,进入监听详情页签,在监听基本信息区域单击编辑监听。
在操作列选择
> 编辑监听。
在编辑监听对话框中,修改监听名称或高级配置,然后单击保存。
API
调用UpdateListenerAttribute更新监听的配置。
启动或停止监听
启动或停止监听时,监听会短暂进入配置中状态,在此期间无法对监听进行删除、编辑或更换服务器组等操作。
停止监听会使访问中断,请谨慎操作。
控制台
前往ALB控制台的实例页面,单击目标实例ID。
单击监听页签,找到目标监听,通过以下任一方式启动或停止监听:
在操作列选择
> 启动或停止,在弹出的对话框中单击确定。单击目标监听ID,在监听详情页签右上角单击启动或停止。
API
调用StartListener启动监听。
调用StopListener停止监听。
更换服务器组
控制台
API
调用UpdateListenerAttribute更新监听的配置(含更换服务器组)。
管理证书
控制台
API
调用UpdateListenerAttribute更新监听的证书配置。
调用AssociateAdditionalCertificatesWithListener为监听添加扩展证书。
调用DissociateAdditionalCertificatesFromListener从监听移除扩展证书。
修改TLS安全策略(仅HTTPS监听)
控制台
在监听详情页签,找到SSL 证书区域,在TLS 安全策略右侧单击
图标。在弹出的编辑 TLS 安全策略对话框中,选择TLS安全策略,然后单击保存。
系统提供多种预定义策略可直接选用。如需自定义TLS协议版本和加密算法套件,可单击创建 TLS 安全策略并创建自定义策略。更多信息,请参见TLS安全策略。
API
调用UpdateListenerAttribute更新监听的配置,通过SecurityPolicyId参数指定TLS安全策略。
管理链路追踪
仅标准版和WAF增强版的ALB实例支持链路追踪。链路追踪的详细说明和开启指导,请参见通过ALB链路追踪实现业务全链路分析。
开启链路追踪后,会产生可观测链路 OpenTelemetry 版和日志服务相关费用。
计费
监听本身不产生费用,ALB实例按量付费。
配额
配额名称 | 描述 | 默认值 | 最大支持提升至 | 是否支持申请 |
alb_quota_loadbalancer_listeners_num_basic_edition | 一个基础版ALB实例可添加的监听数 | 50个 | 80个 | |
alb_quota_loadbalancer_listeners_num_standard_edition | 一个标准版ALB实例可添加的监听数 | 50个 | 100个 | |
alb_quota_loadbalancer_listeners_num_standardwithwaf_edition | 一个WAF增强版ALB实例可添加的监听数 | 50个 | 100个 | |
alb_quota_max_idle_timeout | 创建监听时连接空闲最大超时时间 | 600秒 | 3600秒 | |
alb_quota_max_request_timeout | 创建监听时连接请求最大超时时间 | 600秒 | 3600秒 |
仅ALB升级实例支持将alb_quota_max_request_timeout和alb_quota_max_idle_timeout配额提升至最大3600秒;未升级实例仅支持提升至最大900秒。