You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS ECS Fargate中RTMP目标组不健康,服务部署失败求助

解决AWS ECS Fargate中RTMP目标组健康检查失败的问题

核心问题分析

AWS ALB/NLB的目标组健康检查确实不支持RTMP协议,但你的RTMP服务和HTTP服务部署在同一个Nginx容器里,完全可以复用HTTP服务来完成RTMP目标组的健康验证。

解决方案一:复用Nginx HTTP端点做RTMP目标组健康检查(推荐)

  1. 修改Nginx配置,添加健康检查端点
    在Nginx的http区块中新增一个简单的健康检查路径,确保返回200状态码:

    http {
        # 保留原有HTTP配置
        location /health {
            access_log off;
            return 200 'healthy';
            add_header Content-Type text/plain;
        }
    }
    

    重新构建Docker镜像并推送至你的镜像仓库。

  2. 调整RTMP目标组的健康检查配置

    • 进入AWS控制台的目标组页面,找到你的RTMP目标组
    • 修改健康检查设置:
      • 协议选择HTTP
      • 端口填写80(对应容器的HTTP端口)
      • 路径填写/health
      • 超时、间隔等参数可保持默认或根据业务需求调整
  3. 重新部署ECS服务
    更新服务关联的任务定义(使用新构建的Docker镜像),触发部署后,RTMP目标组会通过请求80端口的/health端点验证容器状态——只要Nginx正常运行,健康检查就能通过。

解决方案二:临时禁用RTMP目标组健康检查(仅测试场景)

如果不想修改Nginx配置,可临时关闭RTMP目标组的健康检查:

  • 在目标组的健康检查设置中,将「健康检查启用」选项设为否
  • 注意:此方法会导致AWS无法自动识别并剔除故障的RTMP容器,绝对不建议在生产环境使用

验证步骤

  1. 部署完成后,查看ECS服务的任务状态是否正常运行
  2. 检查RTMP目标组的健康状态,确认所有目标都显示为「健康」
  3. 使用RTMP推流工具(如ffmpeg)推送测试流到负载均衡器的1935端口,再用播放器拉取验证流是否正常

内容的提问来源于stack exchange,提问作者Charles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 13:03:17