Aipoが動作している環境に、IIS + Djangoを同居させる機会がありましたので、メモを残します。
Aipoは
- Tomcatのポート
80
で動作 http://<ホスト名>/aipo
にてアクセス
という形で動作していました。
また、Djangoは、
- IISでホストし、ポート
9999
で動作 http://<ホスト名>:9999/django
にてアクセス
という形での動作を予定しています。
同居させる際の条件は
- 既存のAipoの設定は変更しない
- Aipoは、
http://<何らかのホスト名>/aipo
でアクセスしたい*1 - Djangoは、
http://<何らかのホスト名>/django
でアクセスしたい <何らかのホスト名>
は、現在のAipoのホスト名と異なっていても可
でした。
何かよい方法がないか調べてみたところ、IISのApplication Request Routing(以下、ARR)をリバースプロキシとして使ってみるのが良さそうでした。
本当は1台で完結させたかったのですが設定がうまくできなかったので、今回は2台構成で設定しました。
環境
Aipo端末
ARRを入れてリバースプロキシとして動作する端末
流れ
ARRのインストール
IISはセットアップ済という前提で設定作業を進めます。
Application Request Routingは依存関係があったので、うまいこと解決してくれるWeb PIを使ってインストールします。
Web PIのサイトから、現在の最新版5.0をダウンロードして実行します。
Download the Microsoft Web Platform
Web PIからARRを検索すると、3.0が見つかったため、インストールします。
IISにて、ARRのProxyの有効化
以下の流れで行います。
- IISマネージャーを起動
- ホームに
Application Request Routing Cache
をダブルクリック - 右の操作ペインより、
Server Proxy Settings...
を選択 - 中央ペインの
Enable proxy
にチェックを入れ、右の操作ペインの適用
をクリック - 「変更内容は正常に保存されました。」が右の操作ペインに表示されることを確認
URL書き換えの追加
Aipo用、Django用、Djangoの静的ファイル用の計3エントリを追加します。
- IISマネージャーのホームにある
URL書き換え
をダブルクリック - 右の操作ペインの
規則の追加
をクリック - 受信規則の
空の規則
を選択して、OKボタンを押す
より、以下の内容で追加を行います。
なお、デフォルト値から変更した部分を<値>
で表示しています。
Aipo用
項目 | 値 |
---|---|
名前 | Aipo |
要求されたURL | パターンに一致する |
使用 | 正規表現 |
パターン | (aipo.*) |
大文字と小文字を区別しない | チェックする |
アクションの種類 | 書き換え |
URLの書き換え | http://192.168.0.1/{R:0} |
クエリ文字列の追加 | チェックする |
後続の規則の処理を停止する | チェックしない |
Django用
項目 | 値 |
---|---|
名前 | Django |
要求されたURL | パターンに一致する |
使用 | 正規表現 |
パターン | (django.*) |
大文字と小文字を区別しない | チェックする |
アクションの種類 | 書き換え |
URLの書き換え | http://192.168.0.1:9999{R:0} |
クエリ文字列の追加 | チェックする |
後続の規則の処理を停止する | チェックしない |
Djangoの静的ファイル用
項目 | 値 |
---|---|
名前 | DjangoStatic |
要求されたURL | パターンに一致する |
使用 | 正規表現 |
パターン | (static.*) |
大文字と小文字を区別しない | チェックする |
アクションの種類 | 書き換え |
URLの書き換え | http://192.168.0.1:9999{R:0} |
クエリ文字列の追加 | チェックする |
後続の規則の処理を停止する | チェックしない |
動作確認
以上より、
http://arr/aipo
で、Aipoへアクセスhttp://arr/django
で、Djangoアプリへアクセス
とすることができました。
参考
ARRまわり
別の端末から、Aipo端末のIISマネージャーの設定を変更したいとき
IIS Manager for Remote Administration
を使えば良さそうでした。
山市良のえぬなんとかわーるど: IIS 7.5 対応の Windows 7 向け IIS マネージャー
Windows7 x64の場合、Inetmgr1.2\inetmgr_amd64_ja-JP.msi
をインストールします。
Download IIS Manager for Remote Administration 1.2 from Official Microsoft Download Center
*1:今回はAipo7系ですが、Aipo8系だと「http://何らかのホスト名/」でのアクセスになるようです。参考:アップデート方法(Windows版) - ドキュメント|無料グループウェア「アイポ」