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

如何排查AWS Elastic Beanstalk部署Flask网站时的502错误?

排查AWS Elastic Beanstalk部署Flask出现HTTP 502错误的步骤

1. 优先查看Elastic Beanstalk日志文件

登录AWS控制台,进入目标Elastic Beanstalk环境,左侧导航栏选日志,点击请求日志下的下载获取完整日志包,重点检查:

  • /var/log/web.stdout.log:Flask应用的标准输出日志,排查应用启动失败、代码语法错误、模块缺失等问题
  • /var/log/web.stderr.log:应用错误输出,记录崩溃、依赖缺失等关键报错
  • /var/log/nginx/error.log(nginx作为反向代理时):检查反向代理是否能正常连接Flask应用,比如端口不匹配、连接被拒绝的信息

2. 验证EC2实例上的Flask运行状态

通过AWS控制台或ssh连接到EC2实例:

  • 执行ps aux | grep python(或python3,匹配你的Python版本),查看Flask进程是否在运行,无进程则说明应用未启动成功
  • 手动启动应用:进入应用目录,执行启动命令(比如python app.py或gunicorn app:app),直接观察是否有报错
  • 检查端口占用:用netstat -tulpn | grep python查看应用监听端口,确认和Elastic Beanstalk期望的端口一致(默认通常是8000,Flask开发服务器默认是5000)

3. 检查反向代理配置

若使用nginx,查看/etc/nginx/conf.d/elasticbeanstalk/00_application.conf:

  • 确认proxy_pass指向的地址和端口与Flask监听地址一致,比如:
    proxy_pass http://127.0.0.1:8000;
    
  • 执行service nginx status,确认nginx服务是否正常运行

4. 核对安全组与端口配置

  • 检查Elastic Beanstalk关联的安全组,入站规则需允许80(HTTP)或443(HTTPS)端口访问,出站规则允许EC2实例访问互联网(用于下载依赖)
  • 确认Flask应用绑定地址:若绑定127.0.0.1,反向代理可正常访问;若绑定实例私有IP,需确保反向代理能访问到对应地址

5. 检查依赖与环境变量

  • 确认requirements.txt包含所有必要依赖(如flask、gunicorn),Elastic Beanstalk会自动安装依赖,缺失会导致应用启动失败
  • 检查环境变量:在Elastic Beanstalk配置->软件->环境属性中,确认数据库连接字符串、密钥等应用依赖的变量是否正确设置

6. 核对Elastic Beanstalk环境配置

  • 确认平台配置:选择的Python平台版本需与本地开发版本兼容
  • 查看环境事件日志:在Elastic Beanstalk控制台事件页面,排查是否有部署失败、实例健康异常的记录(比如实例启动失败、应用部署出错)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 22:20:02