Elastic Beanstalk Django app deployment 502 Bad Gateway Server not running (No module named: 'application')
Я развернул приложение на AWS через Elastic Beanstalk, и когда я закончил продвигать проект на 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 не изменился, а в файл config было введено всего 4 строки (2 команды). Так что я очень запутался, откуда берется эта ошибка.
Если кто-то сталкивался с этой проблемой в прошлом, не могли бы вы сообщить мне, что вы пробовали, чтобы заставить его снова работать. Спасибо
.
Тем временем я буду искать в конфигурационных файлах, требованиях и т.д., чтобы выяснить, что пошло не так.
Обратите внимание, что этот вопрос похож на этот, однако моя проблема кажется более изолированной и более подробной.
Проблема, с которой я столкнулся, на самом деле была связана с плохим PostgreSQL соединением. Настройки соединения были для разработки и недействительны в производстве. Производственное соединение не работало, поэтому оно выбрасывало эту "ошибочную" ошибку.
Если вы получаете эту ошибку, вероятно, вы настроили производственные настройки неправильно (или все еще используете настройки разработки). В моем случае это была проблема с PostgreSQL, в вашем это может быть какая-то другая база данных или другая служба подключения.
проверьте свои конфигурации.
Бонусные очки @Marcin за помощь в поиске решения в моем случае.