python - Ubuntu 16.04/Django - gunicorn - Worker 启动失败

标签 python django ubuntu ubuntu-16.04 gunicorn

我正在 Digital Ocean Ubuntu 16.04 VPS 上部署 Django 项目。我使用了 Django 的一键安装,然后替换为我的项目。

问题是服务器返回 502 Error

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

你知道问题出在哪里吗?

gunicorn.service

[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

日志:

> sudo journalctl -u gunicorn

返回这个:

...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'.

最佳答案

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

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

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

sudo systemctl daemon-reload sudo systemctl 重启 gunicorn sudo systemctl 启用 gunicorn

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

关于python - Ubuntu 16.04/Django - gunicorn - Worker 启动失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45182898/

相关文章:

python - 解码 Django session cookie 值

python - 优化此 MySQL 查询的最佳方法是什么?

python - Django 静态文件不会显示在生产服务器中。如何正确映射它们,以便我可以看到管理 GUI

php - Magento 1.7.0.0 上的奇怪问题

python - 使用 Pyramid 获取请求 IP 地址

python - Numpy 命名空间问题

python - 按外键分组并显示相关项目 - Django

php - Magento 值 '29,990000' 必须是数字

python - python 中 apache/modwsgi 应用程序的内存模型?

python - 使用 read_xml 将数据从两个 XML 父节点导入到 Pandas DataFrame