ubuntu16.04/Django gunicorn Worker未能

2024-09-30 20:29:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在数字海洋Ubuntu16.04vps上部署Django项目。我使用了一键安装Django,然后用我的项目替换了它。在

问题是服务器返回502 Error。在

编辑:/home/django/realestate_scanner/目录内没有realestate_scanner.sock

你知道问题出在哪里吗?在

gunicorn服务

[Unit]
Description=Gunicorn daemon for Realestate Scanner
Before=nginx.service
After=network.target

[Service]
WorkingDirectory=/home/django/realestate_scanner
ExecStart=/usr/bin/gunicorn --name=realestate_scanner --pythonpath=/home/django/realestate_scanner --bind unix:/home/django/gunicorn.socket --config /etc/gunicorn.d/gunicorn.py realestate_scanner.wsgi:application
Restart=always
SyslogIdentifier=gunicorn
User=django
Group=django


[Install]
WantedBy=multi-user.target

日志:

^{pr2}$

返回此:

...skipping...
Jul 19 06:45:08 django-512mb-ams2-01-beta gunicorn[20681]:     self.reap_workers()
Jul 19 06:45:08 django-512mb-ams2-01-beta gunicorn[20681]:   File "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 464, in reap_workers
Jul 19 06:45:08 django-512mb-ams2-01-beta gunicorn[20681]:     raise HaltServer(reason, self.WORKER_BOOT_ERROR)
Jul 19 06:45:08 django-512mb-ams2-01-beta gunicorn[20681]: gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
Jul 19 06:45:08 django-512mb-ams2-01-beta systemd[1]: gunicorn.service: Main process exited, code=exited, status=1/FAILURE
Jul 19 06:45:08 django-512mb-ams2-01-beta systemd[1]: gunicorn.service: Unit entered failed state.
Jul 19 06:45:08 django-512mb-ams2-01-beta systemd[1]: gunicorn.service: Failed with result 'exit-code'.
Jul 19 06:45:08 django-512mb-ams2-01-beta systemd[1]: gunicorn.service: Service hold-off time over, scheduling restart.
Jul 19 06:45:08 django-512mb-ams2-01-beta systemd[1]: Stopped Gunicorn daemon for Realestate Scanner.
Jul 19 06:45:08 django-512mb-ams2-01-beta systemd[1]: gunicorn.service: Start request repeated too quickly.
Jul 19 06:45:08 django-512mb-ams2-01-beta systemd[1]: Failed to start Gunicorn daemon for Realestate Scanner.
...skipping...
Jul 19 06:45:08 django-512mb-ams2-01-beta gunicorn[20681]:     self.reap_workers()
Jul 19 06:45:08 django-512mb-ams2-01-beta gunicorn[20681]:   File "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 464, in reap_workers
Jul 19 06:45:08 django-512mb-ams2-01-beta gunicorn[20681]:     raise HaltServer(reason, self.WORKER_BOOT_ERROR)
Jul 19 06:45:08 django-512mb-ams2-01-beta gunicorn[20681]: gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
Jul 19 06:45:08 django-512mb-ams2-01-beta systemd[1]: gunicorn.service: Main process exited, code=exited, status=1/FAILURE
Jul 19 06:45:08 django-512mb-ams2-01-beta systemd[1]: gunicorn.service: Unit entered failed state.
Jul 19 06:45:08 django-512mb-ams2-01-beta systemd[1]: gunicorn.service: Failed with result 'exit-code'.
Jul 19 06:45:08 django-512mb-ams2-01-beta systemd[1]: gunicorn.service: Service hold-off time over, scheduling restart.
Jul 19 06:45:08 django-512mb-ams2-01-beta systemd[1]: Stopped Gunicorn daemon for Realestate Scanner.
Jul 19 06:45:08 django-512mb-ams2-01-beta systemd[1]: gunicorn.service: Start request repeated too quickly.
Jul 19 06:45:08 django-512mb-ams2-01-beta systemd[1]: Failed to start Gunicorn daemon for Realestate Scanner.

以及

> sudo systemctl status gunicorn

返回此:

root@django-512mb-ams2-01-beta:/home/django/realestate_scanner# sudo systemctl status gunicorn
● gunicorn.service - Gunicorn daemon for Realestate Scanner
   Loaded: loaded (/etc/systemd/system/gunicorn.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2017-07-19 06:36:04 UTC; 4ms ago
 Main PID: 20517 ((gunicorn))
    Tasks: 0
   Memory: 0B
      CPU: 0
   CGroup: /system.slice/gunicorn.service
           └─20517 (gunicorn)

Jul 19 06:36:04 django-512mb-ams2-01-beta systemd[1]: Started Gunicorn daemon for Realestate Scanner.
root@django-512mb-ams2-01-beta:/home/django/realestate_scanner# sudo journalctl -u gunicorn
-- Logs begin at Tue 2017-07-18 20:09:42 UTC, end at Wed 2017-07-19 06:36:50 UTC. --
Jul 18 20:10:00 django-512mb-ams2-01-beta systemd[1]: Started Gunicorn daemon for Django Project.
Jul 18 20:10:00 django-512mb-ams2-01-beta gunicorn[2093]: [2017-07-18 20:10:00 +0000] [2093] [INFO] Starting gunicorn 19.4.5
Jul 18 20:10:00 django-512mb-ams2-01-beta gunicorn[2093]: [2017-07-18 20:10:00 +0000] [2093] [INFO] Listening at: unix:/home/django/gunicorn.socket (2093)
Jul 18 20:10:00 django-512mb-ams2-01-beta gunicorn[2093]: [2017-07-18 20:10:00 +0000] [2093] [INFO] Using worker: gevent
Jul 18 20:10:00 django-512mb-ams2-01-beta gunicorn[2093]: [2017-07-18 20:10:00 +0000] [2101] [INFO] Booting worker with pid: 2101
Jul 18 20:10:00 django-512mb-ams2-01-beta gunicorn[2093]: [2017-07-18 20:10:00 +0000] [2102] [INFO] Booting worker with pid: 2102
Jul 18 20:10:00 django-512mb-ams2-01-beta gunicorn[2093]: [2017-07-18 20:10:00 +0000] [2105] [INFO] Booting worker with pid: 2105
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]: [2017-07-18 20:10:49 +0000] [2105] [ERROR] Error handling request /
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]: Traceback (most recent call last):
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:   File "/usr/lib/python2.7/dist-packages/gunicorn/workers/async.py", line 52, in handle
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:     self.handle_request(listener_name, req, client, addr)
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:   File "/usr/lib/python2.7/dist-packages/gunicorn/workers/ggevent.py", line 163, in handle_request
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:     super(GeventWorker, self).handle_request(*args)
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:   File "/usr/lib/python2.7/dist-packages/gunicorn/workers/async.py", line 105, in handle_request
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:     respiter = self.wsgi(environ, resp.start_response)
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:   File "/usr/lib/python2.7/dist-packages/django/core/handlers/wsgi.py", line 189, in __call__
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:     response = self.get_response(request)
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:   File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 207, in get_response
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:     return debug.technical_500_response(request, *sys.exc_info(), status_code=400)
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:   File "/usr/lib/python2.7/dist-packages/django/views/debug.py", line 97, in technical_500_response
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:     html = reporter.get_traceback_html()
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:   File "/usr/lib/python2.7/dist-packages/django/views/debug.py", line 384, in get_traceback_html
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:     return t.render(c)
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:   File "/usr/lib/python2.7/dist-packages/django/template/base.py", line 210, in render
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:     return self._render(context)
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:   File "/usr/lib/python2.7/dist-packages/django/template/base.py", line 202, in _render
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:     return self.nodelist.render(context)
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:   File "/usr/lib/python2.7/dist-packages/django/template/base.py", line 905, in render
Jul 18 20:10:49 django-512mb-ams2-01-beta gunicorn[2093]:     bit = self.render_node(node, context)
...skipping...
Jul 19 06:36:06 django-512mb-ams2-01-beta gunicorn[20517]:     self.stop()
Jul 19 06:36:06 django-512mb-ams2-01-beta gunicorn[20517]:   File "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 347, in stop
Jul 19 06:36:06 django-512mb-ams2-01-beta gunicorn[20517]:     time.sleep(0.1)
Jul 19 06:36:06 django-512mb-ams2-01-beta gunicorn[20517]:   File "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 219, in handle_chld
Jul 19 06:36:06 django-512mb-ams2-01-beta gunicorn[20517]:     self.reap_workers()
Jul 19 06:36:06 django-512mb-ams2-01-beta gunicorn[20517]:   File "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 464, in reap_workers
Jul 19 06:36:06 django-512mb-ams2-01-beta gunicorn[20517]:     raise HaltServer(reason, self.WORKER_BOOT_ERROR)
Jul 19 06:36:06 django-512mb-ams2-01-beta gunicorn[20517]: gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
Jul 19 06:36:06 django-512mb-ams2-01-beta systemd[1]: gunicorn.service: Main process exited, code=exited, status=1/FAILURE
Jul 19 06:36:06 django-512mb-ams2-01-beta systemd[1]: gunicorn.service: Unit entered failed state.
Jul 19 06:36:06 django-512mb-ams2-01-beta systemd[1]: gunicorn.service: Failed with result 'exit-code'.

Tags: djangoinpylibpackagesusrdistservice
2条回答

我有一个类似的错误,结果是我的Django代码中引入了一个语法错误。在

因此,尝试独立运行Django总是一个好主意

python manage.py runserver

当你突然有一个“工人启动失败”的错误

我知道这个问题有一段时间没有答案,很可能已经解决了,但这可以帮助某些人。 第一次尝试:

gunicorn log-file=- (your_project_name).wsgi:application

您将看到一个日志,其中包含加载gunicorn引导的其他参数。 在我的例子中,一个包丢失了,我安装了这个包并输入了foward命令:

sudo systemctl daemon-reload sudo systemctl restart gunicorn sudo systemctl enable gunicorn

问题解决了。我希望这个答案能有所帮助。在

相关问题 更多 >