跨多个文件拆分相同的虚拟主机配置

Oli*_*r H 5 mod-proxy django virtualhost

我的服务器上有多个 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>
Run Code Online (Sandbox Code Playgroud)

现在,为了简单地启用或禁用某些应用程序,当我运行另一个应用程序时,我有另一个 .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>
Run Code Online (Sandbox Code Playgroud)

但是这第二个<VirtualHost *:80>没有使用,考虑到 apache 配置语法,这似乎很正常。

但是,我希望将这一点配置放在应用程序声明的旁边,这样我就可以将属于一起的内容放在一个文件中。

有什么我可以做的吗?我正在考虑以某种方式使用 include 指令,但我对 apache 配置知之甚少,而且我认为我无法自己找到解决方案:)

你怎么认为?

干杯

sci*_*rus 6

include指令可以让您像这样构建代理配置:

代理.conf:

<VirtualHost *:80>
    Include app1_proxy.conf
    Include app2_proxy.conf
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

app1_proxy.conf:

ProxyPass /app1 http://localhost:8101/app1
ProxyPassReverse /app1 http://localhost:8101/app1
Run Code Online (Sandbox Code Playgroud)

app2_proxy.conf:

ProxyPass /app2 http://localhost:8102/app2
ProxyPassReverse /app2 http://localhost:8102/app2
Run Code Online (Sandbox Code Playgroud)