Divida la misma configuración de virtualhost en varios archivos

Divida la misma configuración de virtualhost en varios archivos

Tengo varias aplicaciones Django en mi servidor que se ejecutan cada una dentro de sus propios servidores virtuales, vinculadas a diferentes puertos. (Hago esto para aislar cada WSGIProcessGroup).

Ahora me gustaría enviar cada aplicación al puerto 80 por motivos de simplicidad.

Para una aplicación, hago algo como esto:

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>

Ahora, para simplificar la habilitación o deshabilitación de algunas aplicaciones, cuando tengo otra aplicación ejecutándose, tengo otro archivo .conf que contiene esto:

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>

Pero este segundo <VirtualHost *:80>no se utiliza, lo que parece normal considerando la sintaxis de configuración de Apache.

Sin embargo, Me gustaría que esta parte de la configuración viviera justo al lado de la declaración de la aplicación, para poder tener cosas que pertenecen juntas en un solo archivo.

¿Habría algo que pudiera hacer al respecto? Estaba pensando en usar una directiva de inclusión de alguna manera, pero tengo muy poco conocimiento sobre la configuración de Apache y no creo que pueda encontrar una solución por mi cuenta :)

¿Qué opinas?

Salud

Respuesta1

La includedirectiva le permitiría estructurar su configuración de proxy de esta manera:

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

información relacionada