O mod-wsgi automaticamente roda novamente quando o apache é reiniciado?

2

Eu estava lendo por aqui: link

Temos um aplicativo python hospedado em uma ampla variedade de servidores com balanceamento de carga e, às vezes, leva muito tempo para que uma solicitação entre em um servidor com baixa prioridade no balanceador de carga. Isso significa que podemos esperar um longo tempo de espera (enquanto o wsgi daemon desse servidor gira) muito tempo depois de um deploy.

Eu tenho uma correção para isso quando realmente implementamos, mas também temos reinicializações automáticas do apache (graciosas) na matriz do servidor. Está reiniciando o apache a mesma coisa que tocar no meu arquivo wsgi? O wsgi espera até que um pedido entre nesse daemon em particular para compilar e rodar ou ele carrega automaticamente na reinicialização do apache?

    
por cbron 15.08.2014 / 00:56

1 resposta

3

Use o pré-carregamento para forçar o carregamento do aplicativo quando o processo for iniciado, em vez de depender do padrão de carregamento lento na primeira solicitação do aplicativo.

Se estiver usando uma versão suficientemente nova do mod_wsgi, em vez de usar:

WSGIDaemonProcess xxx
WSGIProcessGroup xxx
WSGIApplicationGroup %{GLOBAL}

WSGIScriptAlias / /some/path/wsgi.py

Uso:

WSGIDaemonProcess xxx

WSGIScriptAlias / /some/path/wsgi.py process-group=xxx application-group=%{GLOBAL}

Fornecendo argumentos de grupos de processos e de grupos de aplicativos a WSGIScriptAlias, o mod_wsgi saberá com certeza qual contexto de grupo e sub-intérprete do processo de daemon o aplicativo executará no final e, portanto, poderá pré-carregá-lo na inicialização.

Se você está em uma distribuição muito desatualizada com uma versão antiga do mod_wsgi, existe uma maneira alternativa de fazer algo similar usando a diretiva WSGIImportScript.

    
por 15.08.2014 / 03:38