#python #django #ubuntu #gunicorn
#python #django #ubuntu #gunicorn
Вопрос:
Я прочитал сообщения с похожими проблемами, и, похоже, ничто не решает мою проблему. Мы запускаем приложение django с gunicorn, supervisor и nginx уже несколько месяцев без каких-либо проблем. Сегодня утром из ниоткуда (я повторяю из ниоткуда!) Я получаю a 502 bad gateway error
при попытке получить доступ к любой странице сайта.
изучив это, я обнаружил, что ошибка gunicorn, как показано в этом gunicorn.err.log
Traceback (most recent call last):
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/arbiter.py", line 209, in run
self.sleep()
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/arbiter.py", line 357, in sleep
ready = select.select([self.PIPE[0]], [], [], 1.0)
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/arbiter.py", line 242, in handle_chld
self.reap_workers()
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/arbiter.py", line 525, in reap_workers
raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ubuntu/exo/bin/gunicorn", line 11, in <module>
sys.exit(run())
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 58, in run
WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/app/base.py", line 228, in run
super().run()
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/app/base.py", line 72, in run
Arbiter(self).run()
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/arbiter.py", line 229, in run
self.halt(reason=inst.reason, exit_status=inst.exit_status)
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/arbiter.py", line 342, in halt
self.stop()
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/arbiter.py", line 393, in stop
time.sleep(0.1)
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/arbiter.py", line 242, in handle_chld
self.reap_workers()
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/arbiter.py", line 525, in reap_workers
raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
Я способен понять, что является источником ошибки в соответствии с этим журналом. Любая помощь была бы очень признательна, прежде чем меня уволят!
после попытки запустить gunicorn с --debug-log debug
помощью command я получаю дополнительную обратную трассировку:
Traceback (most recent call last):
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
worker.init_process()
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/workers/ggevent.py", line 162, in init_process
super().init_process()
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/workers/base.py", line 119, in init_process
self.load_wsgi()
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
self.wsgi = self.app.wsgi()
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
return self.load_wsgiapp()
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
return util.import_app(self.app_uri)
File "/home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/util.py", line 358, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 941, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'inventory4'
Inventory4 — это мой каталог django с settings.py и wsgi.py
это очень странно, потому что я не внес никаких изменений в конфигурацию своего проекта.
вот как это выглядит в django: settings.py:
WSGI_APPLICATION = 'inventory4.wsgi.application'
и wsgi.py
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'inventory4.settings')
application = get_wsgi_application()
а затем в /etc/supervisor/conf.d/gunicorn.conf:
directory=/home/ubuntu/exostocksaas
command=/home/ubuntu/exo/bin/gunicorn --config /home/ubuntu/exo/lib/python3.6/site-packages/gunicorn/config.py --log-level debug --bind unix:/home/ubuntu/exostocksaas/app.sock inventory4.wsgi:application
autostart=true
autorestart=true
stderr_logfile=/var/log/gunicorn/gunicorn.err.log
stdout_logfile=/var/log/gunicorn/gunicorn.out.log
[group:guni]
programs:gunicorn
Я понятия не имею, что могло вызвать возникновение ошибки и как ее решить