ここからはTOMCATとWebサーバーが別のPC(サーバー)で動いているとき、両者を連携させる方法について説明します。「HTTPサーバーとの連携 IIS編」の最初の方、「TOMCATの設定」で説明していますが、厳密にはTOMCAT側というよりIIS側の設定と言えます。
「TOMCAT HTTPサーバーとの連携(IIS)」の説明ではTOMCATとIISは同じPCで動いている前提でした。そのため
・ダウンロードした連携ツールの格納先
・uriworkermap.propertiesファイルの作成
・workers.propertiesファイルの作成場所
など全てTOMCATインストールディレクトリ内にしてきました。
しかしここからは違います。
TOMCATインストールディレクトリ別のPC(サーバー)なので、そこに連携ツールや設定ファイルを作っても意味がありません。
実際にはIISの設定で、「この仮想ディレクトリにアクセスするためのエイリアス」に対する「発行する内容を含むディレクトリの物理パス」や、レジストリ設定内容で設定ファイルに対するパスの指定で出来るかもしれません。物理パスに「マイネットワーク」上のPCを指定するという形です。
しかしこの形では連携ツールや設定ファイルを格納したディレクトリを、共有設定にしないといけません。やたらと共有設定はしないほうがいいので、このやり方は出来てもやらないほうがいいでしょう。
以下の作業はIISが動いているPC(サーバー)上で行うことにします。そういった意味でTOMCAT側というよりIIS側の設定、と書きました。
まず連携ツールと設定ファイルを保存するディレクトリを、IISが動いているPC(サーバー)上に作成します。ここでは以下のディレクトリを前提に説明を続けます(もちろん各自の環境に合わせて変えて構いません)。
C:\Tomcat\connector\bin
C:\Tomcat\connector\conf
C:\Tomcat\connector\logs
TOMCATとの連携用ツール、isapi_redirect.dllはC:\Tomcat\connector\binに保存してください。
\confの方は設定ファイルの格納用に使います。
workers.propertiesの設定内容について、TOMCATが同一PCのときと違う部分を説明します。
内容で違うのはworkerが接続しようとするHOSTの設定です。前は同一PCだったのでlocalhostでしたが、今度は接続先PCを、IPアドレスかHOST名で指定します。
それから作成場所は、C:\Tomcat\connector\conf\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が動いているPCのIPアドレスまたHOST名を指定する。
# この例ではyok-pc1というHOST名を指定している。
worker.worker-1.host=yok-pc1
# worker-1とTomcatの通信に使用するポート番号を使用する。デフォルトが8009。
worker.worker-1.port=8009
|
■uriworkermap.propertiesの内容
こちらは内容には特に変更点はありません。uriworkermap.propertiesはクライアントからのリクエストURLパターンと、そのとき使用するworkerの関係を定義したものだからです。実際にworkerが接続する相手の設定は、workers.propertiesに設定済です。
これの作成場所は、C:\Tomcat\connector\conf\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)
|
■レジストリへの登録内容
TOMCAT用にいくつかの情報をレジストリに登録する必要があります。レジストリエディタで直接登録してもいいのですが、登録用の元ネタファイルを作成し、そこから登録するようにします。登録用の元ネタファイル作成場所は C:\Tomcat\connector\conf\iis_redirect.reg としてください。拡張子部分が .reg のファイルは、ダブルクリックするとレジストリへの反映が実行されてしまいますので、編集の際は注意してください。
変更点は、連携ツールのログ出力先、workers.propertiesファイル、uriworkermap.propertiesファイル、へのパス指定です。
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:\\Tomcat\\connector\\logs\\iis_redirect.log"
"log_level"="emerg"
"worker_file"="C:\\Tomcat\\connector\\conf\\workers.properties"
"worker_mount_file"="C:\\Tomcat\\connector\\conf\\uriworkermap.properties"
|
登録用の元ネタファイルを作成し、内容を確認したら、ダブルクリックによりレジストリに反映します。
■IISの設定
ここではWindows2000 Professional Edition上でIIS5.0を使う場合の説明を書きます。
- まず「コントロールパネル」から「インターネット サービス マネージャー」を起動してください。
- 「既定のWebサイト」を停止しておきます。
- 「既定のWebサイト」に対する新規作成で、仮想ディレクトリを作成します。
- 「この仮想ディレクトリにアクセスするためのエイリアス」を tomcat という名前で作成します。
- 「発行する内容を含むディレクトリの物理パス」は、isapi_redirect.dllを格納したディレクトリを参照するようにします。C:\Tomcat\connector\bin を参照してください。。
- アクセス権は読み取り、スクリプトのアクセス、実行アクセスを許可しておいてください。
- 次に「既定のWebサイト」のプロパティから「ISPAIフィルタ」を選択します。
- 追加でisapi_redirect.dllを登録します。「フィルタ名」は tomcat 、「実行パス」は C:\Tomcat\connector\bin のisapi_redirect.dllを参照するようにします。
- 「既定のWebサイト」を開始します(このときTOMCATが動作中であることを確認しておいてください)。
■ここまでの動作確認
IISとTOMCATが別のPC(サーバー)で動いている場合の設定説明なので、まずIISとTOMCATの両方が稼働中であることを確認してください。
ブラウザを立ち上げ、アドレスに
http://IISが動いているPCのHOST名かIPアドレス/index.jsp や
http://IISが動いているPCのHOST名かIPアドレス/jsp-examples/index.html や
http://IISが動いているPCのHOST名かIPアドレス/servlets-examples/index.html と入力してください。JSPやサーブレットのサンプル画面が表示されます。
TOMCAT6の場合は
http://IISが動いているPCのHOST名かIPアドレス/index.jsp や
http://IISが動いているPCのHOST名かIPアドレス/examples/jsp/index.html や
http://IISが動いているPCのHOST名かIPアドレス/examples/servlets/index.html と入力してください。
|