django_graceful é uma aplicação Django que fornece um conjunto de comandos para a implantação de projetos Django como backends FastCGI. & Nbsp; O objectivo principal é fornecer wrappers para o comando complexa "runfcgi" e implementar uma forma de atualizar o código de produção sem interrupção.
Idéia é muito simples: você definir suas opções FastCGI no settings.py e usar comandos fornecidos para iniciar / parar o backend fastcgi.
Mas em vez de um processo fastcgi você tem dois processos independentes e uma possibilidade de mudar de servidor web entre eles sem reinicialização. Isto dá-lhe o benefício de atualizar seu código de produção sem interrupção do seu serviço.
Instalação
& Nbsp; & nbsp; * Execute easy_install django_graceful;
& Nbsp; & nbsp; * Adicione django_graceful para INSTALLED_APPS do seu projeto;
& Nbsp; & nbsp; * Em settings.py do seu projeto adicionar variável GRACEFUL_STATEDIR com caminho completo para o diretório gravável existente, onde deseja gracioso para armazenar arquivos .pid e .socket;
& Nbsp; & nbsp; * Opcionalmente adicionar ao seu settings.py GRACEFUL_OPTIONS variável com dicionário de opções adicionais para ./manage.py comando runfcgi;
Uso
Gracioso acrescenta seguintes comandos para roteiro manage.py do seu projeto:
& Nbsp; & nbsp; & nbsp; * Iniciar - inicia backends especificados;
& Nbsp; & nbsp; & nbsp; * Stop - pára backends especificados;
& Nbsp; & nbsp; & nbsp; * Switch - Muda para o backend especificado;
& Nbsp; & nbsp; & nbsp; * Keepalive - garante que não é um backend em execução e é ativo;
& Nbsp; & nbsp; & nbsp; * Restart - backends reiniciado especificadas, mesmo os parados;
& Nbsp; & nbsp; & nbsp; * Status - mostra lista de backends com corrida / status ativo;
& Nbsp; & nbsp; & nbsp; * Atualização - reinicia backend inativo e muda para ela;
Veja ./manage.py
Exemplo
& Nbsp; & nbsp; & nbsp; Um exemplo de como curto Graceful se destina a ser utilizado.
& Nbsp; & nbsp; & nbsp; * GRACEFUL_STATEDIR é definido como "/ home / web / projecto / var / run /" onde / home / web / projeto é uma raiz do projeto;
& Nbsp; & nbsp; & nbsp; * nginx do fastcgi_pass pontos para socket arquivo de link simbólico: fastcgi_pass unix: /home/web/project/var/run/fastcgi.socket;
& Nbsp; & nbsp; & nbsp; * Adicione comandos ao seu crontab: * / 5 * * * * cd / home / web / projeto; ./manage.py parar --inactive * * * * * cd / home / web / projeto; keepalive ./manage.py
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Isso irá garantir que um de seus backends está em execução e ativa, eo outro é parado logo depois de perder status ativo;
& Nbsp; & nbsp; & nbsp; * Quando você precisa atualizar seu código, puxe alterações do repositório ou atualização de arquivos de alguma outra maneira e executar ./manage.py atualização;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Isto irá iniciar / reiniciar inativo backend fastcgi e depois mudar link simbólico para o seu arquivo de soquete
Requisitos :.
- Python
- Web-servidor com suporte fastcgi sobre socket unix (nginx por exemplo)
- servidor Web e fastcgi-backend no mesmo servidor
- Django
Comentários não encontrado