1

目前我有一个运行 nginx 的家庭服务器(Ubuntu),我使用代理传递来将请求传递给 django。我使用 gevent 作为我的 wsgi 服务器。

在服务器关闭之前一切正常,因为无论出于何种原因我重新启动服务器或崩溃(电力)。由于 nginx 是一个服务,所以当服务器重新启动时,nginx 也会启动。但是我的 django 应用程序没有。所以我必须手动转到我的每个 django 项目,激活它们的 virtualenvs,然后启动 gevent 进程。至少可以说这很烦人。

有自动处理所有这些的标准方法吗?

4

2 回答 2

7

您需要为UpstartSupervisor等设置脚本。就个人而言,我更喜欢使用Supervisor。这是我用来运行 gunicorn 实例的脚本:

[program:gunicorn]
command=/path/to/virtualenv/bin/python manage.py run_gunicorn -c /path/to/gunicorn.conf.py
directory=/path/to/django/project
user=www-data
autostart=true
autorestart=true
redirect_stderr=True
于 2012-08-10T17:10:12.860 回答
1

考虑使用流程管理器为您处理此问题。我喜欢主管

你告诉它如何启动你的各种进程,然后它在后台运行(就像 nginx 一样)并且会在重启时自动启动并启动你的各种 django 后端进程。

于 2012-08-10T17:09:44.690 回答