Vla*_*zki 15 ubuntu nginx django wsgi uwsgi
我正在尝试按照本教程uWSGI
使用Django
和nginx
on进行设置Ubuntu
16.04
。
一切正常,直到我尝试执行此命令的最后一步(哦,讽刺的是...):
sudo service uwsgi start
Run Code Online (Sandbox Code Playgroud)
如果失败并出现以下错误:
启动 uwsgi.service 失败:未找到单元 uwsgi.service。
其他人似乎得到了类似的错误:
启动 uwsgi.service 失败:单元 uwsgi.service 加载失败:没有这样的文件或目录。
该问题似乎与 Ubuntu 的版本有关。虽然该教程针对的是 Ubuntu 14.04,但它似乎不适用于较新的版本,因为在 15 版中 Ubuntu 从upstart
init daemon切换到systemd
init daemon。
如何使用systemd
uWSGI 启动 uWSGI 以便它与 nginx 和 Django 一起使用?
Vla*_*zki 28
需要的第一个修改是对/etc/uwsgi/sites/firstsite.ini
文件。唯一需要更改的是将权限从 替换664
为666
。脚本如下所示:
[uwsgi]
project = firstsite
base = /home/user
chdir = %(base)/%(project)
home = %(base)/Env/%(project)
module = %(project).wsgi:application
master = true
processes = 5
socket = %(base)/%(project)/%(project).sock
chmod-socket = 666
vacuum = true
Run Code Online (Sandbox Code Playgroud)
其次,由于我们使用的是systemd
而不是upstart
,因此不需要以下文件,可以将其删除:/etc/init/uwsgi.conf
第三,我们在以下位置创建以下systemd
脚本/etc/systemd/system/uwsgi.service
:
[Unit]
Description=uWSGI Emperor service
After=syslog.target
[Service]
ExecStart=/usr/local/bin/uwsgi --emperor /etc/uwsgi/sites
Restart=always
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=all
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
使用这个新的 uWSGI 服务刷新 systemd init 系统的状态
sudo systemctl daemon-reload
Run Code Online (Sandbox Code Playgroud)
为了启动脚本,您需要运行以下命令:
sudo systemctl start uwsgi
Run Code Online (Sandbox Code Playgroud)
为了uWSGI
在重新启动时开始,您还需要:
sudo systemctl enable uwsgi
Run Code Online (Sandbox Code Playgroud)
您可以使用以下方法检查其状态:
systemctl status uwsgi
Run Code Online (Sandbox Code Playgroud)
一些进一步的细节可以在这里找到。
归档时间: |
|
查看次数: |
20027 次 |
最近记录: |