Разделить одну и ту же конфигурацию виртуального хоста на несколько файлов

Разделить одну и ту же конфигурацию виртуального хоста на несколько файлов

У меня на сервере есть несколько приложений Django, каждое из которых работает на своих виртуальных хостах, привязанных к разным портам. (Я делаю это для того, чтобы изолировать каждую WSGIProcessGroup).

Теперь я хотел бы для простоты проксировать каждое приложение на порт 80.

Для одного приложения я делаю что-то вроде этого:

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>

Теперь, для простоты включения или отключения некоторых приложений, когда у меня запущено другое приложение, у меня есть еще один файл .conf, содержащий следующее:

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>

Но эта секунда <VirtualHost *:80>не используется, что кажется нормальным, учитывая синтаксис конфигурации Apache.

ОднакоЯ бы хотел, чтобы этот фрагмент конфигурации находился рядом с объявлением приложения, чтобы я мог объединить все, что связано друг с другом, в одном файле.

Могу ли я что-то сделать в этом случае? Я думал как-то использовать директиву include, но у меня очень мало знаний о конфигурации Apache, и я не думаю, что смогу найти решение самостоятельно :)

Что вы думаете?

Ваше здоровье

решение1

Директива includeпозволит вам структурировать конфигурацию прокси-сервера следующим образом:

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

Связанный контент