Divide a mesma configuração de virtualhost em vários arquivos

5

Eu tenho vários aplicativos django no meu servidor que executam cada um dentro de seus próprios hosts virtuais, ligados a portas diferentes. (Eu faço isso para isolar cada WSGIProcessGroup).

Agora eu gostaria de fazer o proxy de cada aplicativo para a porta 80 por uma questão de simplicidade.

Para um aplicativo, faço algo assim:

Listen 8101
<VirtualHost 127.0.0.1:8101>
    WSGIProcessGroup app1
    WSGIDaemonProcess app1 display-name=%{GROUP}
    WSGIScriptAlias /app1 "/var/django_apps/app1/app1.wsgi"
</VirtualHost>

<VirtualHost *:80>
    ProxyPass /app1 http://localhost:8101/app1
    ProxyPassReverse /app1 http://localhost:8101/app1
</VirtualHost>

Agora, para simplificar a ativação ou desativação de alguns aplicativos, quando tenho outro aplicativo em execução, tenho outro arquivo .conf contendo isso:

Listen 8102
<VirtualHost 127.0.0.1:8102>
    WSGIProcessGroup app2
    WSGIDaemonProcess app2 display-name=%{GROUP}
    WSGIScriptAlias /app2 "/var/django_apps/app2/app2.wsgi"
</VirtualHost>

<VirtualHost *:80>
    ProxyPass /app2 http://localhost:8102/app2
    ProxyPassReverse /app2 http://localhost:8102/app2
</VirtualHost>

Mas este segundo <VirtualHost *:80> não é usado, o que parece normal considerando a sintaxe de configuração do apache.

No entanto , eu gostaria que este bit de configuração vivesse ao lado da declaração do aplicativo, para que eu possa ter coisas que pertençam em apenas um arquivo.

Haveria algo que eu poderia fazer para esse assunto? Eu estava pensando em usar uma diretiva include de alguma forma, mas tenho muito pouco conhecimento sobre a configuração do apache, e acho que não consigo encontrar uma solução sozinha:)

O que você acha?

Felicidades

    
por Olivier H 19.12.2013 / 18:08

1 resposta

6

A diretiva include permite estruturar sua configuração de proxy assim:

proxy.conf:

<VirtualHost *:80>
    Include app1_proxy.conf
    Include app2_proxy.conf
</VirtualHost>

app1_proxy.conf:

ProxyPass /app1 http://localhost:8101/app1
ProxyPassReverse /app1 http://localhost:8101/app1

app2_proxy.conf:

ProxyPass /app2 http://localhost:8102/app2
ProxyPassReverse /app2 http://localhost:8102/app2
    
por 19.12.2013 / 18:37