使用Nginx部署Django作为服务

时间:2012-08-10 16:47:22

标签: django ubuntu deployment nginx webserver

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

一切正常,直到服务器关闭,因为我因任何原因重启服务器或崩溃(电)。由于nginx是一项服务,当服务器重新启动时,nginx也会启动。但是我的django应用程序没有。那么我必须手动去我的每个django项目,激活他们的virtualenvs,然后启动gevent进程。至少可以说这非常烦人。

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

2 个答案:

答案 0 :(得分:7)

您需要为UpstartSupervisor之类的内容设置脚本。就个人而言,我更喜欢使用主管。这是我用来运行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

答案 1 :(得分:1)

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

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