Django、uWSGI 和 Supervisord 配置

Vel*_*les 2 django uwsgi supervisord

好的,我在我的服务器上设置了 Django、nginx 和 uWSGI……问题是我通过以下命令手动启动了 uWSGI:

uwsgi -s /home/user/sites/sock/uwsgi.sock -t 10 -M -p 1 -C --pythonpath /home/user/sites/ -w mysite.django_wsgi

而且效果很好。我想做的是使用 supervisord 来控制 uWSGI 进程(启动、停止等)。我将如何做到这一点,supervisord 配置会是什么样子?

小智 5

我发现这很令人困惑,直到我发现了皇帝模式

这意味着您可以执行一个 supervisord 实例来管理您的所有配置:

[program:uwsgi]
command=/usr/local/bin/uwsgi --emperor /etc/uwsgi/apps-enabled
stopsignal=QUIT
autostart=true
autorestart=true
redirect_stderr=true
Run Code Online (Sandbox Code Playgroud)

然后将应用程序的任何配置文件(ini、xml、yaml)弹出到/etc/uwsgi/apps-enabled目录中。

不确定这是否适用于 0.9,但绝对适用于 1.0。

这是 Flask 应用程序的示例 ini:

[uwsgi]
socket = /tmp/uwsgi_%n.sock
module = wire:app
chdir = /srv/%n/wire
env = WIRE_SETTINGS=/srv/%n/wire/config.py
virtualenv = /srv/%n
uid = wire
gid = www-data
single-interpreter = false
chmod = 770
processes = 3
Run Code Online (Sandbox Code Playgroud)