通过 Upstart 运行 Django 站点

通过 Upstart 运行 Django 站点

我在一台 Ubuntu 服务器上托管了几个 Django 网站。直到最近,我还在使用 Cherokee HTTPd,它有启动后端应用程序(如 Django 网站)的选项,但我刚刚切换到 nginx。

在切诺基下,我只是“运行”Django 站点(站点存储在/web/):

cd /web/mywebsite/; python manage.py runfcgi workdir=/web/mywebsite method=threaded socket=/web/mywebsite/sock pidfile=/web/mywebsite/pid maxspare=3 maxrequests=500

然后我将连接到 处的套接字/web/mywebsite/sock。Cherokee 也以我选择的用户身份运行它,在我的情况下是www-data

对于我来说,这种方法在 Cherokee 下效果很好,但是现在我正在转向 nginx,那里没有可以帮我进行流程管理的东西。

环顾四周,有数百种不同的方法来管理它。初始化脚本、cron 检查、守护进程工具。但是由于我使用的是 Ubuntu(可能永远都会使用),Upstart 似乎更有意义...但是我该从哪里开始呢?

有人可以给我举一个运行上述程序并在程序死机后重新启动的 upstart 脚本的例子吗?

我有几个 django 站点/web/(并且它们是该目录中唯一的目录),因此如果有一种欺骗性的方法,我可以使用这个 upstart 脚本启动它们所有(使用相同的设置)并监视它们,那就太棒了。

答案1

我使用相同的配置,/etc/init/django.conf:

description "Django FastCGI /web site"

start on runlevel [2345]
stop on runlevel [!2345]

respawn
exec python /web/manage.py runfcgi socket=//web/mywebsite/sock pidfile=/var/run/django.pid

控制:

start: start django or initctl start django
stop: stop django or initctl stop django
restart: restart django or initctl restart django

我最近录制了一个关于配置 nginx 和 django(fastcgi 和 upstart) 的视频 -http://linux.dyndns-work.com/video/ubuntu_server10.04_install_django_nginx_fastcgi.ogv/

但我更喜欢 nginx 和 uwsgi(还有 upstart init 脚本) - 没有链接,我最多可以发布一个超链接。

相关内容