ARR(Application Request Routing)を利用して IIS と Tomcat を連携する
皆様、Windows 上で Webサーバ と Tomcat を連携する場合には何を利用しているだろうか? Tomcat と連携するからには、Apache+mod_jk を利用している場合も多いと思う。だが、Windows Vista 以降からは原則的に IIS がクライアントOSにもインストールされており、Web Platform Installer を利用することで容易にApache+mod_jk相当の環境が構築可能だ。
更に、Application Request Routing はリクエストに対するルーティング機能のほか、負荷分散、キャッシュ機能等も利用できる。やや語弊もあるが、ざっくりとは以下の対応だ。
今回は、ARR を利用し、Windows 上で IIS と Tomcat を容易に連携する方法について紹介する。
環境構築周り
Application Request Routing の概要や環境構築については、以下の記事を参考にして欲しい。CodeZine 側の記事を参考に Web Platform でインストールすると環境構築が容易だ。
IIS+Tomcat の環境を構築
IIS, ARR, Tomcat を利用して、以下の環境を構築する。
まず、[ファイル名を指定して実行]から inetmgr を入力し、[インターネット インフォーメーション サービス(IIS) マネージャ]を起動する。まず、プロキシ機能の有効化を行う。まず、Application Request Routing のアイコンを押下する。
次に、Server Proxy Setting を押下する。
Enable proxy にチェックボックスにチェックをし、プロキシ機能を有効化する。
次にURL書き換えの設定を行う。まず、IIS マネージャの画面から URL 書き換えを選択し、[規則の追加]リンクを押下する。
[空の規則]の追加を押下する。
規則の設定画面にて、[パターン(T)]に「(HelloWorld.*)」を入力し、[URL書き換え(L)]に「http://localhost:8080/{R:0}」と入力して設定を完了する。
war ファイルの作成と Tomcat の実行
IIS 側の環境構築が完了したので、まずはデプロイ用の war ファイルを作成する。以下の index.jsp ファイルを含む HelloWorld.war を作成して欲しい。
- index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Tomcat on IIS8</title> </head> <body> <h2>Tomcat 7.X on IIS 8</h2> <img src="/welcome.png" /> </body> </html>
次に、作成した HelloWorld.war を C:\opt\apache-tomcat-7.0.34\webapps 以下に配置する(ファイルパスは適宜読みかえること)。war ファイルの配置後は、C:\opt\apache-tomcat-7.0.34\bin\startup.bat を実行し、ブラウザを利用して http://localhost/HelloWorld にアクセスし、以下の画面が表示されれば設定は無事完了だ。