Django部署Elastic Beanstalk报blog/wsgi模块缺失及上游连接错误
Elastic Beanstalk 控制台上传部署Django站点报错修复
两类报错的核心触发原因是WSGI路径配置格式错误,连带导致服务进程启动失败触发上游连接错误,按以下步骤修复即可:
- 修正
.ebextensions/django.config配置
现有配置用文件系统路径的斜杠/书写Python模块路径,是触发ModuleNotFoundError的直接原因。Python模块导入必须用点.做层级分隔,替换配置内容如下,注意严格保持YAML缩进:option_settings: aws:elasticbeanstalk:container:python: WSGIPath: blog.wsgi:application - 校验wsgi.py配置匹配项目层级
现有wsgi.py中DJANGO_SETTINGS_MODULE配置为blog.blog.settings,需确认压缩包解压后的目录结构满足:- 解压根目录直接存在
manage.py、.ebextensions文件夹、外层blog目录 - 外层
blog目录下嵌套内层blog目录,内层目录中存在settings.py、wsgi.py文件
如果wsgi.py和manage.py同处于解压根目录层级,直接将wsgi.py中对应配置修改为:
import os from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'blog.settings') application = get_wsgi_application() - 解压根目录直接存在
- 按规范打包部署包
控制台手动上传时打包错误是高频问题:不要选中项目父文件夹打包,进入存放manage.py的项目根目录,全选目录下所有文件(包含.ebextensions隐藏文件夹)直接压缩为zip包,保证解压后第一层级直接可见manage.py、.ebextensions等核心文件,不存在嵌套的外层项目文件夹。
重新上传部署后,WSGI模块可正常加载,服务进程正常启动监听端口,上游连接错误会同步消失。
内容的提问来源于stack exchange,提问作者RV203
相关产品推荐
相关产品推荐

