Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Nginx作为服务部署Django_Django_Ubuntu_Deployment_Nginx_Webserver - Fatal编程技术网

使用Nginx作为服务部署Django

使用Nginx作为服务部署Django,django,ubuntu,deployment,nginx,webserver,Django,Ubuntu,Deployment,Nginx,Webserver,目前我有一个运行nginx的家庭服务器(Ubuntu),在那里我使用proxy pass将请求传递给django。我使用gevent作为我的wsgi服务器 在服务器关闭之前,一切都可以正常工作,要么是因为我出于任何原因重新启动服务器,要么是因为某个原因(电力)崩溃。由于nginx是一种服务,当服务器重新启动时,nginx也会启动。但是,我的django应用程序没有。因此,我必须手动转到我的每个django项目,激活它们的VirtualNV,然后启动gevent进程。至少可以说,这很烦人 是否有一

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

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


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

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


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

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


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

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

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

到目前为止看起来很好。但是,
supervisord
本身不会在计算机启动时启动。它有办法做到这一点吗?我在文件里找不到,应该是的。你是怎么安装的?如果您只是
sudo apt get install supervisor
,它将自动创建一个运行脚本并将其放入init.d中。到目前为止,看起来非常好。但是,
supervisord
本身不会在计算机启动时启动。它有办法做到这一点吗?我在文件里找不到,应该是的。你是怎么安装的?如果您只是
sudo apt get install supervisor
,它将自动创建一个运行脚本并将其放入init.d中。