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

AWS Elastic Beanstalk部署Django应用遇502错误求助排查

排查与解决AWS Elastic Beanstalk部署Django的502错误

一、优先解决Python版本兼容性问题

你本地使用Python3.11+Django4,但EB指定的是Python3.7,这必然导致部署失败。Django4.0最低要求Python3.8,Python3.7完全不兼容Django4,这是核心问题之一:

  • 方案1:升级EB的Python环境到3.8及以上(EB支持Python3.8/3.9/3.10,可根据Django版本选择对应支持的版本),重新初始化环境:
    eb init -p python-3.9 app-tutorial
    
  • 方案2:降级本地Django到Python3.7兼容的版本(比如Django3.2 LTS,支持Python3.6-3.10),同时更新requirements.txt中的Django版本为Django==3.2.20。

二、验证WSGI路径配置正确性

你的django.config中设置的WSGIPath: app.wsgi:application必须和项目结构匹配:

  • 确认项目根目录下存在名为app的文件夹,且该文件夹内有wsgi.py文件,文件中定义了application对象。
  • 如果项目结构是myproject/myproject/wsgi.py,则需修改django.config中的路径为:
    option_settings:
      aws:elasticbeanstalk:container:python:
        WSGIPath: myproject.wsgi:application
    
  • 可通过eb ssh登录EC2实例,进入/opt/python/current/app目录,查看实际目录结构是否匹配。

三、排查Nginx连接上游失败的原因

日志中connect() failed (111: Connection refused)说明Nginx无法连接到127.0.0.1:8000的Django服务,按以下步骤排查:

  1. 检查Django应用是否成功启动:
    • 查看EB应用日志:eb logs --instance <实例ID>,查找是否有Django启动报错(如依赖缺失、语法错误,Python版本不兼容大概率会触发这类错误)。
    • 登录实例后,激活虚拟环境并手动启动Django,验证是否能正常运行:
      source /opt/python/run/venv/bin/activate
      python manage.py runserver 127.0.0.1:8000
      
  2. 确认端口配置无冲突:
    EB的Python环境默认让Gunicorn监听127.0.0.1:8000,无需手动修改端口。确保你的Django项目中没有硬编码其他端口,避免冲突。
  3. 检查依赖是否正确安装:
    确认项目根目录的requirements.txt包含所有依赖(包括Django),且包版本适配目标Python版本。如果是从Python3.11环境导出的requirements.txt,需调整为兼容目标EB Python版本的包版本。

四、验证健康检查与Django配置

目标组返回502,需同时确认以下配置:

  • 健康检查路径:确保健康检查请求的路径(如/)是Django能正常响应的路径。若有自定义健康检查视图,需同步更新目标组的健康检查路径。
  • ALLOWED_HOSTS配置:在Django的settings.py中设置ALLOWED_HOSTS = ['*'](测试环境临时使用,生产环境需指定具体域名),避免因域名白名单限制导致请求被拒绝。

五、重新部署的正确流程

  1. 解决Python与Django的版本兼容性问题。
  2. 更新requirements.txt,确保所有依赖版本适配目标Python环境。
  3. 确认django.config的WSGI路径正确。
  4. 修改settings.py的ALLOWED_HOSTS配置。
  5. 重新部署应用:
    eb deploy
    
    或先终止旧环境再重建:
    eb terminate django-env
    eb create django-env
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 01:17:34