2009-8-27更新 2002-10-11作成

 ■TOMCAT HTTPサーバーとの連携(IIS)

 ここではTOMCATとWebサーバーを連携させる方法について説明します。
 確認をしたのはWindows2000 + IIS5.0環境です。

 ■isapi_redirect.dllのダウンロード

 TOMCATとIISを連携させるには、それ用のツール(DLLファイル)が必要です。これは http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/ から、ダウンロードします。一覧の上の方は jk-1.2.nn というディレクトリが並んでいるので、nnが一番新しいのを選んください。その中に isapi_redirect-バージョン番号.dll というファイルがあるので、これをダウンロードします。

 ダウンロードしたファイルは、 %CATALINA_HOME%\bin\ にコピーします(このWEBページを前提にするなら C:\Apache Software Foundation\Tomcat 5.5\bin の下です)。コピーしたファイルの名前はダウンロードしたときの isapi_redirect-バージョン番号.dll からバージョン番号部分を除いて、 isapi_redirect.dll にしておくといいでしょう。

 後述するようにIIS側の設定で、この連携ツールを登録します。ファイルにバージョン番号を含んだままだと、新しい連携ツールにバージョンアップする度にIIS設定の変更が必要だからです。固定で isapi_redirect.dll になるようにファイル名を変更しておけば、連携ツールバージョンアップ時にIIS側設定変更の必要がありません。それだけです。

 ■TOMCATの設定

 TOMCAT側の設定でやることは

  • IIS連携のための設定ファイル用ディレクトリ作成
  • workers.propertiesファイルの作成
  • uriworkermap.propertiesファイルの作成
  • レジストリへの登録

です(後で説明しますが、厳密にはTOMCAT側というよりIIS側の設定と言えます)。

 始めに説明すると、TOMCATとHTTPサーバーを連携させるためのツール、Connectorですが、Tomcat worker と呼びます(以下では単にworkerと記す)。
 そのworkerの種類や動作を定義するのがworkers.propertiesファイル
 TOMCATに連携させるクライアントからのリクエストパターン(URLパターン)と、それに対応するworkerを定義するのがuriworkermap.propertiesファイル
 そしてIISとTOMCATを連携させるDLLや、workers.propertiesファイル、uriworkermap.propertiesファイルの場所をレジストリに登録
という流れです。これにそって説明していきます。

 ■workers.propertiesの作成

 このファイルの作成場所は、 %CATALINA_HOME%\conf\jk\workers.properties にします。\conf の下の、 \jk ディレクトリは各自で作成してください。
 そこにworkers.propertiesを以下のように作成してください。なお # で始まる行はコメント行です。

workers.propertiesの内容

# worker名の設定、worker-1という名前にする。
worker.list=worker-1

# worker-1の形式、標準のajp13(Apache JServ Protocol version 1.3)を使用。
worker.worker-1.type=ajp13

# worker-1が接続する、TomcatをインストールしたPCを指定する。
# この場合はTomcatとIISが同じPCの例。
# TomcatとIISが別PCなら、Tomcatが動いているPCのIPアドレスまたHOST名を指定する。
worker.worker-1.host=localhost

# worker-1とTomcatの通信に使用するポート番号を使用する。デフォルトが8009。
worker.worker-1.port=8009

 このサンプルを「 workers.propertiesサンプル 」に置いておきます。リンク先を保存すれば上記内容のファイルが出来ます。ただしこのリンク先ファイルは、ファイル名を workers.properties.txt と拡張子部分を txt に変えてあります(編集作業をしやすくするため)。TOMCATの conf\jk ディレクトリに保存した後はファイル名を変更し、 .txt 部分を削除してください。

 ■uriworkermap.propertiesの作成

 ここでは%CATALINA_HOME%\Webapps\TestApというアプリケーション用ディレクトリ名を作成した場合について説明します。
 workers.propertiesと同じ場所、 %CATALINA_HOME%\conf\jk\ にuriworkermap.propertiesを以下のように作成してください。これも # で始まる行はコメント行です。

uriworkermap.propertiesの内容

# デフォルトworker名を設定する
default.worker=worker-1

# デフォルトのサーブレットURLパタンに対し、worker-1 workerを適用する
/servlet/*=worker-1

# デフォルトのJSP URLパタンに対し、worker-1 workerを適用する
/*.jsp=worker-1

# TOMCATと一緒にインストールされるexamplesに対し、worker-1 workerを適用する
/jsp-examples/*=worker-1

# TOMCATと一緒にインストールされるサーブレットexamplesに対し、
# worker-1 workerを適用する
/servlets-examples/*=worker-1

# 自分用のディレクトリを作る場合、これも追加する
# JSPとサーブレットのみTOMCATで処理する指定方法
# 上で default.worker を設定しているので、この書き方も出来る
# 
/TestAp/servlet/*=$(default.worker)
/TestAp/*.jsp=$(default.worker)


 これは別にWebサーバーがあるので、TestAp下のJSPとサーブレットのみをTOMCATで処理することを示します。それ以外の通常のHTMLは別のWebサーバーに処理を任せるための指定内容です。
 HTMLファイルはWebサーバー側で設定したWebサイトのホームディレクトリに置く必要があります

 HTMLも全てTOMCATに処理させる場合は、 examples のように記述してください。
 例題のTestApなら以下のようになります。


##自分用のディレクトリを作る場合の定義
# HTMLも含め全てTOMCATで処理
/TestAp/*=$(default.worker)


 複数のディレクトリを作ってサーバー処理を分けて管理したいのであれば、その分追加してください。
 また上記設定例では、サーブレットは標準的なURIパスが指すディレクトリ体系に置くことを前提にしています。サーブレットやJSPの配置先を変えるときは、それに応じてパス設定を変えてください。

 このサンプルを「 uriworkermap.propertiesサンプル 」に置いておきます。リンク先を保存すれば上記内容のファイルが出来ます。このリンク先ファイルも、ファイル名を uriworkermap.properties.txt と拡張子部分を txt に変えてあります(編集作業をしやすくするため)。TOMCATの conf\jk ディレクトリに保存した後はファイル名を変更し、 .txt 部分を削除してください。

 ■レジストリへの登録

 TOMCAT用にいくつかの情報をレジストリに登録する必要があります。レジストリエディタで直接登録してもいいのですが、登録用の元ネタファイルを作成し、そこから登録するようにします。そこでまず %CATALINA_HOME%\conf\jk\ に iis_redirect.reg というファイルを作成します。

iis_redirect.regの内容

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0]
"extension_uri"="/tomcat/isapi_redirect.dll"
"log_file"="C:\\Apache Software Foundation\\Tomcat 5.5\\logs\\iis_redirect.log"
"log_level"="emerg"
"worker_file"="C:\\Apache Software Foundation\\Tomcat 5.5\\conf\\jk\\workers.properties"
"worker_mount_file"="C:\\Apache Software Foundation\\Tomcat 5.5\\conf\\jk\\uriworkermap.
properties"

 このサンプルを「 iis_redirect.regサンプル 」に置いておきます。リンク先を保存すれば上記内容のファイルが出来ます。このリンク先ファイルも、ファイル名を iis_redirect.reg.txt と拡張子部分を txt に変えてあります。これは編集作業をしやすくするためと、拡張子が.regのままだと間違えてダブルクリックすると、そのままレジストリに登録されてしまうためです。各自の環境に合わせて編集が終わるまではこの、.txt付きのファイル名のままにしておきましょう。最後にレジストリに登録するときに .txt 部分を削除してください。後はダブルクリックでレジストリ登録が実行されます。

 それでは内容について説明していきます。
extension_uri はISAPIフィルタの設定です。この /tomcat/ 部分は、下で説明するIISの設定で、仮想ディレクトリのエイリアスに指定する内容です。
log_file はISAPIログの出力先を指定します。TOMCATインストールディレクトリ下のlogディレクトリ下に出力するよう指定しています。
log_level でエラーログのみの指定をしています。
worker_file はworkers.propertiesへのパスを指定します。
worker_mount_file はuriworkermap.propertiesへのパスを指定します。
 特にworker_fileやworker_mount_fileの指定で、%CATALINA_HOME%といった環境変数の利用が出来ませんでした。そのためフルパスで指定する必要があります。log_file設定を含め、レジストリへの登録前に、各自のインストール環境に合っているか再確認してください。

 ■IISの設定

 ここではWindows2000 Professional Edition上でIIS5.0を使う場合の説明を書きます。

  • まず「コントロールパネル」から「インターネット サービス マネージャー」を起動してください。
  • 「既定のWebサイト」を停止しておきます。
  • 「既定のWebサイト」に対する新規作成で、仮想ディレクトリを作成します。
  • 「この仮想ディレクトリにアクセスするためのエイリアス」を tomcat という名前で作成します。
  • 「発行する内容を含むディレクトリの物理パス」は、isapi_redirect.dllを格納したディレクトリを参照するようにします(このWEBページを前提にするなら C:\Apache Software Foundation\Tomcat 5.5\bin です)。
    (ここでも%CATALINA_HOME%が使えればいいんだけど、ダメでした)
  • アクセス権は読み取り、スクリプトのアクセス、実行アクセスを許可しておいてください。
  • 次に「既定のWebサイト」のプロパティから「ISPAIフィルタ」を選択します。
  • 追加でisapi_redirect.dllを登録します。「フィルタ名」は tomcat 、「実行パス」はisapi_redirect.dllのダウンロードで持ってきたisapi_redirect.dllを参照するようにします。
  • 「既定のWebサイト」を開始します(このときTOMCATが動作中であることを確認しておいてください)。

※少し間を置いて、もう一度「既定のWebサイト」のプロパティでISAPIフィルタを参照してください。フィルタ名tomcatの状態が、上向き緑の矢印になっていない場合、

  • レジストリのextension_uriで指定したのと、実際のisapi_redirect.dllの名前かパスが違っている。
  • IISの設定で作成した仮想ディレクトリの名前と違っている( tomcat になってない)。
  • isapiフィルタの名前と違っている( tomcat になってない)。
  • レジストリの worker_file で指定したのと、実際の workers.properties の名前かパスが違っている。
  • レジストリの worker_mount_file で指定したのと、実際の uriworkermap.properties の名前かパスが違っている。
  • workers.properties の内容に記述ミスがある。
  • uriworkermap.properties の内容に記述ミスがある。
といったことが考えられます。これらをもう一度チェックしてみてください。

 ■ここまでの動作確認

 ブラウザを立ち上げ、アドレスに http://localhost/index.jsp や http://localhost/jsp-examples/index.html や http://localhost/servlets-examples/index.html と入力してください(TOMCATと同じPCで確認する場合)。JSPやサーブレットのサンプル画面が表示されます。

 TOMCAT6の場合は http://lonalhost/index.jsp や http://lonalhost/examples/jsp/index.html や http://localhost/examples/servlets/index.html と入力してください。





このページの先頭  サーバーJava入門先頭  TOMCAT編先頭
Copyright © 2002-2009 YOK. All Rights Reserved.