Application Request Routingを使ってみた

受託開発担当のIです。

今回、古いサーバーの更新作業の中でIISとTomcatをisapi_redirectで連携しているサーバーがあり、それを置き換える過程でIISのApplication Request Routingを使用したので簡単な使い方を書いてみたいと思います。


想定はIIS 8.5にダウンロードコンテンツを配置、Tomcat8にJSPで作成したWEBアプリケーションを配置し、
SSL認証を使用しつつ連携したいと思います。

    https://localhost/download/sample.zip -> IISを参照。
    https://localhost/service/login.jsp -> Tomcatへ転送。

まずはIIS8.5とTomcat8をインストールしてください。IIS、Tomcatのインストール方法、設定方法は省略させていただきます。

次にApplication Request Routingをインストールしていきます。
Application Request Routing
こちらの「Install this extension」をクリックし、Web Platform Installerをインストールします。インストーラーの指示に従ってApplication Request Routingをインストールしてください。

インストールが完了した後、IISマネージャーを確認すると「Application Request Routing」「URL書き換え」機能が追加されています。
iis_top

Application Request Routing Cacheを選択し、設定画面が開いたらServer Proxy Settingsを選択します。
arrc_setting

Application Request Routingの設定画面が開いたら以下の設定をします。
・「Enable proxy」にチェックを入れてプロキシを有効にする。
・「Use URL Rewrite to inspect incoming requests」にチェックを入れてURLの書き換えを使用する。
・「Reverse proxy」に連携するTomcatを指定する。
※ここで「Enable SSL offloading」のチェックを入れておくことでIISにSSL認証を任せることができます。SSLを使用する場合はIISに証明書のインストール、設定を行ってください。
arr_setting_1

arr_setting_2

URL書き換えを選択し設定画面を見ると先ほど設定したプロキシに対応する規則が追加されています。
url_rewrite_setting_1

receive_rule_setting_1

ダウンロードコンテンツはIISに配置するので、ダウンロードコンテンツにアクセスした場合はリクエストをTomcatへ転送しないように規則を追加します。ここで追加する規則は対象のアクセスあっても特に何もしないが、その後の処理を行わないという規則にします。
url_rewrite_setting_2

add_rule

receive_rule_setting_2

ダウンロードコンテンツの規則を追加しましたが、規則の一覧を見ると適応順が最初に追加した「ARR_server_proxy」より下になっているため、このままではダウンロードコンテンツにアクセスした場合Tomcatにリクエストが転送されてしまうので順序を変更します。
url_rewrite_setting_3

url_rewrite_setting_4

url_rewrite_setting_5


これでダウンロードコンテンツにアクセスした場合はIISのコンテンツを参照し、それ以外のリクエストはTomcatへ転送されるようになりました。

このようにARRを使用することで非常に簡単にIISとTomcatを連携することが出来ると思います。ぜひ使ってみてください。