将相同的虚拟主机配置拆分到多个文件中

将相同的虚拟主机配置拆分到多个文件中

我的服务器上有多个 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

相关内容