我在我的一台 Ubuntu 服务器上托管了几个 Django 站点。直到最近,我一直在使用 Cherokee HTTPd,它可以选择启动后端应用程序,如 Django 站点,但我刚刚切换到 nginx。
在 cherokee 下,我只是“运行”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
Run Code Online (Sandbox Code Playgroud)
然后我将连接到/web/mywebsite/sock
. Cherokee 也以我选择的用户身份运行它,就我而言www-data
。
在 Cherokee 下,这种方法对我很有效,但现在我要转向 nginx,我手头上没有什么东西可以进行流程管理。
环顾四周,实际上有数百种不同的管理方式。初始化脚本、cron 检查、daemontools。但是当我在 Ubuntu 上(可能永远都是)Upstart 似乎是有道理的......但我从哪里开始呢?
有人能给我一个新贵脚本的例子,它运行上面的脚本并且如果它死了会重新生成它吗?
我有几个 django 站点/web/
(它们是该目录中唯一的目录)所以如果有一种欺骗方式我可以让这个新贵脚本启动它们(使用相同的设置)并监视它们,那就是超级超级棒。
我使用相同的配置,/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
Run Code Online (Sandbox Code Playgroud)
控制:
start: start django or initctl start django
stop: stop django or initctl stop django
restart: restart django or initctl restart django
Run Code Online (Sandbox Code Playgroud)
我最近录制了一个关于配置 nginx 和 django(fastcgi 和 upstart)的视频 - http://linux.dyndns-work.com/video/ubuntu_server10.04_install_django_nginx_fastcgi.ogv/
但我更喜欢 nginx 和 uwsgi(也是 upstart init 脚本)——没有链接,我最多可以发布一个超链接。
归档时间: |
|
查看次数: |
1233 次 |
最近记录: |