ここではTOMCATとWebサーバーを連携させる方法について説明します。
確認をしたのはWindows2000 + IIS5.0環境です。
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側の設定でやることは
- 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ファイルの場所をレジストリに登録
という流れです。これにそって説明していきます。
このファイルの作成場所は、 %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 部分を削除してください。
ここでは%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設定を含め、レジストリへの登録前に、各自のインストール環境に合っているか再確認してください。
ここでは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 と入力してください。
|