Executando sites do Django por meio do Upstart

1

Eu hospedo alguns sites do Django em um dos meus servidores Ubuntu. Até recentemente eu tenho usado o Cherokee HTTPd, que tem a opção de lançar aplicativos back-end, como sites do Django, mas acabei de trocar para o nginx.

Sob o cherokee, eu apenas "corro" sites do Django (os sites são armazenados em /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

E então eu me conectaria ao soquete em /web/mywebsite/sock . Cherokee também executa isso como um usuário de minha escolha, no meu caso www-data .

Essa abordagem funcionou bem para mim sob o Cherokee, mas agora estou mudando para o nginx, não tenho nada lá segurando minha mão para o gerenciamento de processos.

Olhando em volta, existem literalmente centenas de maneiras diferentes de gerenciar isso. Scripts de inicialização, verificações de cron, daemontools. Mas como eu estou no Ubuntu (e provavelmente sempre será) Upstart parece fazer sentido ... Mas por onde eu começo?

Alguém poderia me dar um exemplo de um script iniciante que execute o acima e irá reaparecer se ele morrer?

Eu tenho vários sites de django em /web/ (e eles são os únicos diretórios nesse diretório) então se há um jeito barato que eu posso pegar esse script iniciante para lançar todos eles (com as mesmas configurações) e monitorá-los, isso seria super-extra-awesome.

    
por Oli 07.12.2010 / 16:56

1 resposta

5

Eu uso a mesma configuração, /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

controle:

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

Recentemente, gravei um vídeo sobre como configurar o nginx e o django (fastcgi e upstart) - link

Mas eu prefiro nginx e uwsgi (também upstart init script) - sem link, eu posso postar no máximo um hyperlink.

    
por 07.12.2010 / 17:55