Elastic Beanstalk Django 应用程序部署 502 Bad Gateway Server not running (No module named: 'application')
Posted
技术标签:
【中文标题】Elastic Beanstalk Django 应用程序部署 502 Bad Gateway Server not running (No module named: \'application\')【英文标题】:Elastic Beanstalk Django app deployment 502 Bad Gateway Server not running (No module named: 'application')Elastic Beanstalk Django 应用程序部署 502 Bad Gateway Server not running (No module named: 'application') 【发布时间】:2022-01-16 19:10:34 【问题描述】:我通过 Elastic Beanstalk 将应用程序部署到 AWS,当我完成将项目推送到 aws(Elastic Beanstalk)时,我面临永久 502 Bad Gateway 错误(可能是因为 Django 应用程序服务器从未真正启动,而 nginx 可以不要通过代理我们)。查看日志,我发现了一个奇怪的错误,看起来非常具体且错误。看起来是这样的:
Traceback (most recent call last):
Dec 13 09:00:10 ip-172-31-35-65 web: File "/.../python3.8/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
Dec 13 09:00:10 ip-172-31-35-65 web: worker.init_process()
Dec 13 09:00:10 ip-172-31-35-65 web: File "/.../python3.8/site-packages/gunicorn/workers/gthread.py", line 92, in init_process
Dec 13 09:00:10 ip-172-31-35-65 web: super().init_process()
Dec 13 09:00:10 ip-172-31-35-65 web: File "/.../python3.8/site-packages/gunicorn/workers/base.py", line 134, in init_process
Dec 13 09:00:10 ip-172-31-35-65 web: self.load_wsgi()
Dec 13 09:00:10 ip-172-31-35-65 web: File "/.../python3.8/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
Dec 13 09:00:10 ip-172-31-35-65 web: self.wsgi = self.app.wsgi()
Dec 13 09:00:10 ip-172-31-35-65 web: File "/.../python3.8/site-packages/gunicorn/app/base.py", line 67, in wsgi
Dec 13 09:00:10 ip-172-31-35-65 web: self.callable = self.load()
Dec 13 09:00:10 ip-172-31-35-65 web: File "/.../python3.8/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
Dec 13 09:00:10 ip-172-31-35-65 web: return self.load_wsgiapp()
Dec 13 09:00:10 ip-172-31-35-65 web: File "/.../python3.8/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
Dec 13 09:00:10 ip-172-31-35-65 web: return util.import_app(self.app_uri)
Dec 13 09:00:10 ip-172-31-35-65 web: File "/.../python3.8/site-packages/gunicorn/util.py", line 359, in import_app
Dec 13 09:00:10 ip-172-31-35-65 web: mod = importlib.import_module(module)
Dec 13 09:00:10 ip-172-31-35-65 web: File "/.../python3.8/importlib/__init__.py", line 127, in import_module
Dec 13 09:00:10 ip-172-31-35-65 web: return _bootstrap._gcd_import(name[level:], package, level)
Dec 13 09:00:10 ip-172-31-35-65 web: File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
Dec 13 09:00:10 ip-172-31-35-65 web: File "<frozen importlib._bootstrap>", line 991, in _find_and_load
Dec 13 09:00:10 ip-172-31-35-65 web: File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
Dec 13 09:00:10 ip-172-31-35-65 web: ModuleNotFoundError: No module named 'application'
Dec 13 09:00:10 ip-172-31-35-65 web: [2021-12-13 09:00:10 +0000] [8602] [INFO] Worker exiting (pid: 8602)
Dec 13 09:00:10 ip-172-31-35-65 web: [2021-12-13 09:00:10 +0000] [8596] [INFO] Shutting down: Master
Dec 13 09:00:10 ip-172-31-35-65 web: [2021-12-13 09:00:10 +0000] [8596] [INFO] Reason: Worker failed to boot
在此推送之前,此应用程序之前运行正常(并且在虚拟环境 localhost 中运行良好)。但是现在它似乎给出了这个奇怪的 No module named 'application' 错误。我已经运行了“pip3 freeze > requirements.txt”,我尝试重新启动实例并再次部署(无济于事)。如果它有助于项目使用 django-crontab (我提到这一点的唯一原因是因为我最近添加了它,现在出现了这个奇怪的问题)。此外,如果我回到以前的版本,应用程序会再次运行.... wsgi 文件未更改,配置文件仅注入 4 行(2 个命令)。所以我很困惑这个错误是从哪里来的。
如果过去有人遇到过这个问题,您是否介意让我知道您试图让它再次工作的一些事情。谢谢 同时,我将搜索配置文件、需求等,找出问题所在。 注意这个问题类似于this,但是我的问题似乎更孤立,更详细。
【问题讨论】:
您可以通过 ssh 连接到 EB 实例并从内部进行调查吗?让它手动运行看看发生了什么? 我可以通过 eb ssh ssh 进入 EB 实例。它将环境存储在实例内的什么位置?刚进去的时候没找到。 你的申请在/var/app
。
【参考方案1】:
我遇到的问题实际上是由于 PostgreSQL 连接不正确。连接设置用于开发,在生产中无效。生产连接没有工作,所以它抛出了这个“错误”错误。 如果您收到此错误,可能是您配置了生产设置错误(或仍在使用开发设置)。在我的情况下,这是一个 PostgreSQL 问题,在你的情况下,可能是其他数据库或其他连接服务。检查您的配置。
感谢 @Marcin 帮助我在我的案例中寻找解决方案。
【讨论】:
以上是关于Elastic Beanstalk Django 应用程序部署 502 Bad Gateway Server not running (No module named: 'application')的主要内容,如果未能解决你的问题,请参考以下文章
授权凭证剥离 --- django, elastic beanstalk, oauth
Elastic Beanstalk 上的 Django + MySQL - 查询 MySQL 时出错
AWS Elastic Beanstalk 上禁止使用 Django 403