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

AWS App Runner中Python应用80端口TCP健康检查失败求助

AWS App Runner TCP健康检查80端口失败排查方案

可能的问题原因及排查步骤

1. Nginx监听地址限制

  • 检查Nginx的default配置文件,确认listen指令是否绑定到0.0.0.0:80或80(默认监听所有地址),如果是listen 127.0.0.1:80,仅本地回环地址会被监听,App Runner的健康检查请求无法到达。
  • 本地容器内执行ss -tulpn | grep nginx,验证监听地址是否为0.0.0.0:80。

2. start.sh脚本启动逻辑问题

  • 若Nginx以守护进程模式启动(默认nginx命令),容器会因无前台进程运行而退出,或导致端口未被持续监听。需修改脚本让Nginx前台运行:
    #!/bin/bash
    # 后台启动Python应用
    python your_app_entry.py &
    # 前台启动Nginx,保持容器运行
    nginx -g "daemon off;"
    
  • 确认脚本同时启动了Python应用和Nginx,且无启动顺序阻塞(比如Python应用启动卡住导致Nginx未启动)。

3. 健康检查时机配置不合理

  • App Runner默认健康检查启动后立即执行,若Nginx或Python应用启动较慢,会导致初始检查失败。调整健康检查参数:
    • 初始延迟(Initial delay)设为30秒以上,给容器足够启动时间
    • 超时时间(Timeout)设为5秒,间隔(Interval)设为10秒,重试次数设为3次

4. 端口冲突

  • 检查Python应用是否也占用80端口,若存在冲突,Nginx将无法启动。确认Python应用监听其他端口(如8000),并在Nginx配置中添加反向代理:
    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
    

5. 日志排查

  • 查看App Runner控制台的Logs标签页,检查容器启动日志,是否有Nginx启动错误(如配置文件语法错误、端口占用提示)。
  • 本地容器内查看Nginx错误日志/var/log/nginx/error.log,排查配置或启动异常。

6. App Runner端口配置验证

  • 确认App Runner部署配置中的Port设置为80,与Dockerfile的EXPOSE 80/tcp一致。
  • 虽然配置为Public access,但仍需确认无额外网络策略限制(App Runner默认Public access无特殊限制,此点优先级较低)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 01:07:26