负载均衡收到请求后,要先知道用什么协议接收、从哪个端口进入,再转发到后端的哪个端口。监听配错了,流量要么进不来,要么被分到不健康的机器上。下面以阿里云负载均衡 CLB 为例,说明阿里云监听的主要参数,再用三个案例看常见配置和排查思路。

一、监听要填哪些参数
同一个负载均衡实例里,同一前端端口和协议组合只能有一条监听。批量建监听时,这一点最容易撞上,先理清端口规划会省不少返工。
- 监听协议:TCP、UDP 属于四层,按 IP 和端口转发;HTTP、HTTPS 属于七层,可以按域名和 URL 写转发规则。先判断业务是不是 HTTP 请求,再决定协议。
- 前端端口:客户端访问的端口,例如 80、443。
- 后端端口:ECS 上服务实际监听的端口,可以和前端端口不同。填之前先在服务器上确认端口号。
- 调度算法:加权轮询、加权最小连接数、源地址哈希等,决定请求落到哪台后端。
- 健康检查:定期探测后端服务,异常节点会被移出转发列表。
- 会话保持:让同一客户端的请求尽量落在同一台后端。
二、创建监听的操作路径
在阿里云控制台进入“负载均衡”,选中目标实例,打开“监听”页签,点击“添加监听”。依次选择协议和端口,绑定后端服务器组,设置调度算法和健康检查,确认创建即可。HTTPS 监听还需要选择已在 SSL 证书服务中签发或上传的证书,证书没准备好时,建议先用 HTTP 监听把链路跑通,再补上 HTTPS。
三、案例一:官网 HTTPS 访问
某企业官网部署在 3 台 ECS 上,Web 服务监听 8080 端口。用户通过 https://www.example.com 访问,证书由 SSL 证书服务提供。
- 创建 HTTPS 监听,前端端口 443,后端端口 8080。
- 在监听中绑定证书。再建一条 80 端口的 HTTP 监听,配置跳转到 HTTPS,旧链接也能正常打开。
- 调度算法选加权轮询,3 台 ECS 权重设为相同值。
- 健康检查路径填 /healthz,返回 200 视为健康。这个路径应当由服务自己提供,不要直接用首页,首页可能依赖数据库,偶发慢响应会造成误摘除。
上线后,如果某台 ECS 的 Web 服务崩溃,健康检查连续失败,该节点会被摘除。新请求不再落到它上面,网站整体仍能访问。
四、案例二:游戏登录网关的 TCP 长连接
某手游的登录网关使用 TCP 协议,客户端保持长连接。需求是前后端都使用 9000 端口,同一玩家的连接尽量保持在同一台后端。
- 协议选 TCP,前端端口和后端端口都填 9000。
- 调度算法选源地址哈希,同一客户端 IP 映射到同一台后端。需要注意,经同一出口 NAT 上网的大量玩家会集中到一台后端,上线前要按实际流量评估,必要时换一种方式保持会话。
- 连接空闲超时保持默认值。客户端应定时发送心跳包,避免空闲连接被中间环节断开。
- 健康检查选 TCP 方式,检测 9000 端口能否建立连接。
TCP 健康检查只判断端口能不能完成连接,不看服务返回什么内容。如果进程还在、业务线程却已经卡死,检查仍可能判为健康。这类问题要靠应用自己的监控补位。
五、案例三:新增 ECS 后健康检查失败
某团队新增一台 ECS 加入服务器组,监听状态长期显示异常。排查顺序如下:
- 登录 ECS,执行 curl 或 netstat,确认服务确实在后端端口上监听。服务没起来,其他检查都没有意义。
- 检查 ECS 安全组。负载均衡健康检查的流量来自阿里云指定的回源地址段,需要在安全组中放行该网段访问后端端口。具体网段以阿里云官方文档为准,不要凭印象填写。
- 核对健康检查端口。端口填错,会把正常服务判为故障。TCP 监听只需核对端口,HTTP 和 HTTPS 监听还要核对检查路径。
- 核对状态码范围。如果设置为 http_2xx,而服务对健康检查路径返回 302 跳转,检查会判定失败。这种情况要么改服务,让检查路径直接返回 200,要么调整允许的状态码范围。
本案例的原因是安全组缺少放行规则。补充规则后,该节点的健康状态恢复正常。
六、常见误区
- 只改监听,不管后端。后端服务没有监听新端口,监听创建成功也转发不了流量。
- 忽略会话保持的副作用。源地址哈希会让流量分布不均,要结合实际访问量判断,不能只看配置能不能保存。
- 证书到期没人提醒。HTTPS 监听的证书过期后,客户端会出现安全警告,甚至无法连接。最好把证书到期时间纳入日常巡检。
- 直接在生产环境试错。修改监听参数可能影响在线连接。应先在测试实例上验证,再选择维护时段变更。