Divida a mesma configuração de host virtual em vários arquivos

Divida a mesma configuração de host virtual em vários arquivos

Eu tenho vários aplicativos Django em meu servidor que são executados em seus próprios hosts virtuais, vinculados a portas diferentes. (Faço isso para isolar cada WSGIProcessGroup).

Agora eu gostaria de fazer 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 isto:

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 é utilizado, o que parece normal considerando a sintaxe de configuração do apache.

No entanto, gostaria que essa configuração ficasse ao lado da declaração do aplicativo, para que eu possa ter coisas que pertencem juntas em apenas um arquivo.

Haveria algo que eu pudesse fazer nesse sentido? Eu estava pensando em usar uma diretiva include de alguma forma, mas tenho muito pouco conhecimento sobre a configuração do Apache e não acho que consigo encontrar uma solução sozinho :)

O que você acha?

Saúde

Responder1

A includediretiva permitiria 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

informação relacionada