我正在阅读这篇文章:如何在 Ubuntu 16.04 上使用 uWSGI 和 Nginx 提供 Django 应用程序 | DigitalOcean。
我已经完成了教程并重新启动了 nginx 和 uwsgi。我注意到,如果我访问我的服务器的 IP,我可以看到我的网站,正如预期的那样。但是,如果我访问 www.mysite.com,我就会收到 502 错误。
我现在怀疑问题出在 uwsgi,因为:
deploy@server:/etc/systemd/system$ systemctl stop uwsgi
Failed to connect to bus: No such file or directory
deploy@server:/etc/systemd/system$ systemctl start uwsgi
Failed to connect to bus: No such file or directory
deploy@server:/etc/systemd/system$ ps -aux |grep uwsgi
root 29993 0.0 0.5 84112 4344 ? Ss 10:43 0:00 /usr/local/bin uwsgi --emperor /etc/uwsgi/sites
deploy 29996 0.0 3.9 136220 31364 ? S 10:43 0:01 /usr/local/bin uwsgi --ini mysite.ini
deploy 29999 0.0 3.7 138888 29820 ? S 10:43 0:02 /usr/local/bin uwsgi --ini mysite.ini
deploy 30000 0.0 3.2 136220 25496 ? S 10:43 0:00 /usr/local/bin uwsgi --ini mysite.ini
deploy 30001 0.0 3.2 136220 25496 ? S 10:43 0:00 /usr/local/bin uwsgi --ini mysite.ini
deploy 30002 0.0 3.2 136220 25496 ? S 10:43 0:00 /usr/local/bin uwsgi --ini mysite.ini
deploy 30003 0.0 3.7 138328 29368 ? S 10:43 0:00 /usr/local/bin uwsgi --ini mysite.ini
deploy 32311 0.0 0.1 11228 876 pts/0 S+ 15:41 0:00 grep --color=auto uwsgi
根据tut,uwsgi单元文件是:
[Unit]
Description=uWSGI Emperor service
[Service]
ExecStartPre=/bin/bash -c 'mkdir -p /run/uwsgi; chown deploy:www-data /run/uwsgi'
ExecStart=/usr/local/bin/uwsgi --emperor /etc/uwsgi/sites
Restart=always
KillSignal=SIGQUIT
Type=notify
NotifyAccess=all
[Install]
WantedBy=multi-user.target
为什么 systemd 不控制 uwsgi?
编辑:我意识到至少部分问题与路径有关。我安装了 anaconda,并且:
deploy@server:~$ which uwsgi
/home/deploy/miniconda2/bin/uwsgi
我做了如下修改:
[Service]
ExecStartPre=/bin/bash -c 'mkdir -p /run/uwsgi; chown deploy:www-data /run/uwsgi'
ExecStart=/home/deploy/miniconda2/bin/uwsgi --emperor /etc/uwsgi/sites
关闭 shell 并重新打开。我仍然收到:
deploy@server:~$ systemctl start uwsgi
Failed to connect to bus: No such file or directory
答案1
systemctl
应以root
或 的方式运行sudo systemctl
。
PD:对于您删除的问题,答案相同。