gunicorn.service:失败,结果为“退出代码”

gunicorn.service:失败,结果为“退出代码”

我想使用 digitalocean droplet 来托管 django 网站。我尝试使用 gunicorn 和 nginx 在服务器上运行应用程序,当我尝试从浏览器访问服务器时出现 502 错误,我一直在试图弄清楚发生了什么。

我一直在关注教程。我的 droplet 是 Ubuntu 20.04。

这是我的/etc/systemd/system/gunicorn.socket

[Unit]
Description=gunicorn socket

[Socket]
ListenStream=/run/gunicorn.sock

[Install]
WantedBy=sockets.target

这是我的/etc/systemd/system/gunicorn.service

[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target

[Service]
User=root
Group=www-data
WorkingDirectory=/home/root/mysite
ExecStart=/home/root/mysite/venv/bin/gunicorn \
          --access-logfile - \
          --workers 3 \
          --bind unix:/run/gunicorn.sock \
          mysite.wsgi:application

[Install]
WantedBy=multi-user.target

我可以运行gunicorn --bind 0.0.0.0:8000 mysite.wsgi,并且python manage.py runserver没有显示任何错误。当我运行时sudo systemctl status gunicorn.socket,套接字似乎处于活动状态。

但是,当我运行时sudo systemctl status gunicorn,我得到以下信息:

● gunicorn.service - gunicorn daemon
     Loaded: loaded (/etc/systemd/system/gunicorn.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Tue 2023-03-14 05:25:01 UTC; 4min 53s ago
TriggeredBy: ● gunicorn.socket
    Process: 74292 ExecStart=/home/root/mysite/venv/bin/gunicorn --access-logfile - --workers 3 --bind>
   Main PID: 74292 (code=exited, status=200/CHDIR)

Mar 14 05:25:01 mysite systemd[1]: Started gunicorn daemon.
Mar 14 05:25:01 mysite systemd[1]: gunicorn.service: Main process exited, code=exited, status=200>
Mar 14 05:25:01 mysite systemd[1]: gunicorn.service: Failed with result 'exit-code'.

我正在使用 gunicorn 版本 20.0.2。

通过查看 nginx 错误日志,我发现当我尝试访问该网站时不断出现以下错误:

2023/03/14 05:12:12 [error] 72896#72896: *22 connect() to unix:/run/gunicorn.sock failed 

(111: Connection refused) while connecting to upstream, client: xxx.xxx.xxx.xxx,server

mysite.dev, request: "GET / HTTP/1.1", upstream: "http://unix:/run/gunicorn.sock:/", 

host: "xxx.xx.xxx.xxx"

任何帮助都非常感谢!谢谢!

相关内容