Назад | Перейти на главную страницу

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

У меня есть несколько приложений 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, и я не думаю, что смогу найти решение самостоятельно :)

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

Ура

В 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