Várias versões do python sob o apache + mod_wsgi

3

Eu tenho vários hosts virtuais configurados sob a mesma instância do apache no redhat:

  • apache-2.2.15
  • mod_wsgi-3.5 compilado com o sistema padrão python-2.6

Para cada configuração de host virtual WSGIScriptAlias é apontada para o arquivo python em que o virtual ambiente é ativado:

activate_this = '/path_to_the_virtualenv/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))

Agora, estou planejando atualizar um dos projetos para python-2.7, outro para python-3.x. Eu sei que posso ter diferentes ambientes virtuais, caixas de proteção Python separadas. Então, tudo é bom no lado do python.

A questão é: é possível usar diferentes versões do Python para diferentes hosts virtuais do Apache sob a mesma instância do Apache + mod_wsgi?

Se não, qual seria a melhor opção para prosseguir?

Há uma configuração WsgiPythonHome relevante, mas ela é definida globalmente em " configuração do servidor "contexto, não por host virtual. Além disso, o mod_wsgi é compilado para a versão específica do python, então não tenho certeza se ele pode lidar com o caso.

    
por alecxe 31.05.2014 / 07:17

1 resposta

13

Não, não é possível. O binário mod_wsgi deve ser compilado apenas em uma versão do Python e apenas uma instância de um módulo mod_wsgi compilado pode ser carregado no Apache por vez.

O que você precisa fazer é configurar o Apache para fazer proxy para um servidor WSGI separado, ouvindo em suas próprias portas.

Para usar o Apache / mod_wsgi como esse servidor de backend, você deve investigar usando o mod_wsgi 4.1.X. Veja:

Esta versão mais recente do mod_wsgi fornece uma maneira de instalar o mod_wsgi em várias versões do Python e executar uma instância do Apache para cada um usando um script fornecido. O script assume toda a configuração do Apache para que você não precise se preocupar com isso.

    
por 31.05.2014 / 08:31