將相同的虛擬主機設定拆分到多個檔案中

將相同的虛擬主機設定拆分到多個檔案中

我的伺服器上有多個 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指令可以讓您像這樣建立代理配置:

代理.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

相關內容