Windows XPでTomcat 6.0とIIS 5.1の連携方法

Tomcatは普通はApacheと連携させてサーバを構築するのですが、WindowsサーバにどうしてもTomcatを持っていかないといけない場合、IISTomcatを連携させる必要があります。幸い、Windows XP Proであれば、IISをオプションでインストールすることができ、開発環境を無料で構築することができます。

素材

IISをInstall

コントロールパネル→プログラム追加と削除→Windowsコンポーネントの追加と削除
インターネットインフォメーションサービス(IIS)にチェックを入れて次へ

動作確認として、ブラウザで http://localhost にアクセス。Basic認証がかかるのでWindowsにログインする際のIDとPWを入力。IISのトップページが表示されればOK。

TomcatをInstall

zipファイルを適当なディレクトリに展開。以下ではTomcatのホームディレクトリが
D:\apache-tomcat-6.0.16
であることを前提にする。

isapi_redirect-1.2.14.exeをInstall

インストール先をD:\apache-tomcat-6.0.16\bin\win32にする。
D:\apache-tomcat-6.0.16\bin\win32\bin\isapi_redirect.dll
がインストールされていることを確認する。

IUSRユーザ実行権限

D:\apache-tomcat-6.0.16\bin\win32\bin\isapi_redirect.dllを右クリック→プロパティ→セキュリティからIUSR_コンピュータ名(インターネットゲストアカウント)に対して読み取りと実行、読み取りの権限を付与する

レジストリの手直し

この時点でレジストリ設定は以下のようになっている。

worker_fileのworkers.propertiesと、worker_mount_fileのuriworkermap.propertiesの項目を修正する。具体的なフルパスは以下に続く項目参照。

exeを実行して自動的にインストールされるworkers.properties.minimalとuriworkermap.propertiesは使わない。

workers.propertiesの設定

D:\apache-tomcat-6.0.16\conf\jk\workers.propertiesとして、

worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009

uriworkermap.propertiesの設定

D:\apache-tomcat-6.0.16\conf\jk\uriworkermap.propertiesとして、

default.worker=worker1
/examples/*=worker1
/docs/*=worker1
/manager/*=worker1

Tomcat6にプリインストールされているWebアプリのコンテキストをworker.propertiesで定義したworker1という名前のworkerにマッピングする。

IISの設定

コントロールパネル→管理ツール→インターネットインフォメーションサービス
既定のWebサイトを右クリック→プロパティ→ISAPIフィルタ
適当なフィルタ名をつけて、
D:\apache-tomcat-6.0.16\bin\win32\bin\isapi_redirect.dll
と入力、OK。

さらに、IISの設定でjakarta仮想ディレクトリが生成されていることを確認。
仮想ディレクトjakartaのプロパティを開いて、ローカルパスが
D:\apache-tomcat-6.0.16\bin\win32\bin\
であることを確認。

テストコンテンツ配置

D:\apache-tomcat-6.0.16\webapps\examples\index.jspとして、

<html><body>test <%= new java.util.Date() %></body></html>

を作成。

動作確認

IISTomcatを再起動してブラウザで上で配置したJSPにアクセス
http://localhost/examples/index.jsp
元々入っているServletのサンプル
http://localhost/examples/servlets/servlet/HelloWorldExample
も正常に表示されるはず。

注意

  • server.xmlを追記する必要があるという説があるが、TOMCAT_HOME\conf\auto以下に自動的に設定ファイルが生成されるが、どうもこれだとうまくいかない気がする。。。
  • isapi_redirect.dllにIUSRユーザ実行権限をあたえないと、リダイレクトの際にBasic認証のダイヤログが表示されてしまう。