normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

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 上で IISTomcat を容易に連携する方法について紹介する。

環境構築周り

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 を作成して欲しい。

<%@ 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 にアクセスし、以下の画面が表示されれば設定は無事完了だ。