我的伺服器上有多個 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