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

使用awsebcli部署Django应用到AWS EB时出现502 Bad Gateway错误

问题排查与解决方案

1 AWS控制台看不到环境的修复

  • 首先切换AWS控制台的区域到us-west-2(俄勒冈区),区域选择入口在控制台顶部导航栏右侧,eb status输出的资源都部署在该区域,默认控制台可能选中其他区域导致看不到资源
  • 确认控制台登录的AWS账号和awsebcli使用的访问密钥所属账号完全一致,如果使用子账号密钥,需要确认该子账号拥有Elastic Beanstalk资源的查看权限

2 502 Bad Gateway与健康状态Red的排查

502错误本质是Elastic Beanstalk前置的Nginx反向代理无法正常转发请求到后端Django服务,按以下优先级排查:

2.1 校验WSGI路径配置

Amazon Linux 2的Python平台默认需要指定正确的WSGI入口路径:

  • 执行eb config查看配置项aws:elasticbeanstalk:container:python下的WSGIPath参数,需与你项目的wsgi.py路径一致,比如Django主应用名为django_project,则参数值应为django_project/wsgi.py
  • 确认requirements.txt中已添加gunicorn依赖,平台默认使用gunicorn启动WSGI服务,缺失该依赖会导致后端服务无法启动

2.2 校验Django基础配置

  • 检查settings.py中的ALLOWED_HOSTS配置,必须添加eb status输出的CNAME域名django-test-env.eba-3i3hqgjc.us-west-2.elasticbeanstalk.com,也可临时设置为ALLOWED_HOSTS = ["*"]验证
  • 若你设置了DEBUG = False,需在settings.py中配置STATIC_ROOT = os.path.join(BASE_DIR, "static/"),并在项目根目录执行python manage.py collectstatic后重新部署,否则静态资源请求异常会导致服务健康检查失败

2.3 拉取日志定位具体错误

执行eb logs命令拉取环境全量日志,重点查看两类日志:

  • Nginx错误日志/var/log/nginx/error.log:可明确看到是后端连接被拒绝、超时还是其他转发错误
  • 应用运行日志/var/log/web.stdout.log、/opt/python/log/application.log:可查看Django启动过程中的报错,比如依赖版本冲突、数据库连接失败、配置参数错误等问题

2.4 校验Python版本兼容性

确认你的项目所有依赖包都兼容Python 3.8,requirements.txt中指定的Django版本需满足Python 3.8的适配要求,低于2.2版本的Django不支持Python 3.8,会直接启动失败


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:27:02