私のサーバーには複数の 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>
しかし、この 2 番目<VirtualHost *:80>
は使用されません。これは、Apache 構成構文を考慮すると正常なようです。
しかしこの設定の一部をアプリケーション宣言のすぐ横に配置して、1 つのファイルにまとめられるようにしたいと思います。
その点に関して何かできることはあるでしょうか? 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