ドリンクバーゲン会場

IISとTomcatの連携2008年03月12日 11時49分23秒

IISではセキュリティの設定まで完了しましたが、Webアプリの動作はTomcatで行われます。
TomcatにはWebサーバーの機能があり、インストール後はすぐに使えるようになりますが、別々に動いている状態ではだめなので、IISとTomcatを連携して動くようにします。

まず、「isapi_redirect.dll」をダウンロードします。
http://tomcat.apache.org/download-connectors.cgi
からダウンロードできます。

ダウンロードしたファイルには、バージョンが入っていますので、
このバージョンを消します。
「isapi_redirect-1.2.26.dll」→「isapi_redirect.dll」
このDLLをTomcatのディレクトリにコピーします。
C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin\IIS
最後のIISは自分で作成しました。

次にレジストリエディタを使い、レジストリ情報を追加していきます。
Tomcatのインストールが済んでいれば、
「HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation」
が登録されているので、ここに新しいキーを追加していきます。
「Apache Software Foundation」にマウスを合わせ、「新規」-「キー」と選んでください。
「新しいキー #1」ができますので、
名前を「Jakarta Isapi Redirector」と変更します。
同じ要領でその下に「1.0」と追加してください。
「HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0」
に値を追加します。
追加する項目は5つです。
「新規」-「文字列値」で5つの項目を追加します。

1つ目は、「extension_uri」という名前で、「/jakarta/isapi_redirect.dll」というデータを入力します。

2つ目は、「log_file」という名前で、ログファイルを書き出す場所を指定します。
今回は「C:\Program Files\Apache Software Foundation\Tomcat 6.0\logs\isapi.log」と指定しました。

3つ目は、「log_level」という名前で、ログレベルを指定します。
ログレベルは4種類あるのですが、今回は「emerg」を指定しました。

4つ目は、「worker_file」という名前で、「worker.properties」ファイルのパスをしていします。
今回は、「C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\worker.properties」と指定しました。

5つ目は、「worker_mount_file」という名前で、「uriworkermap.properties」ファイルのパスを指定しています。
今回は、「C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\uriworkermap.properties」と指定しました。

次に、「worker.properties」と「uriworkermap.properties」を作成します。
worker.properties
***************************************
worker.ajp13.port=8009
worker.ajp13.host=localhost
***************************************

uriworkermap.properties
***************************************
default.worker=ajp13
/*=ajp13
***************************************

作成した2つのファイルを、「C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf」に追加します。
レジストリに追加した内容とずれないように注意してください。

次は、IISマネージャーへの設定の追加です。
「既定のWebサイト」にマウスを合わせ、右クリックでプロパティを選んでください。
「ISAPIフィルタ」タブを開き「追加」ボタンを押してフィルタを追加します。
フィルタ名は「jakarta」、実行可能ファイルは「C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin\IIS\isapi_redirect.dll」を指定します。

次にTomcatに接続するための仮想ディレクトリを作成します。
「既定のWebサイト」で右クリックし、「新規作成」-「仮想ディレクトリ」を選んでください。
ウィザードが起動しますので、エイリアス名に「jakarta」、
パスに「C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin\IIS」(isapi_redirect.dllのパス)を指定します。
次に仮想ディレクトリのアクセス許可ですが、「ISAPIアプリケーションやCGIなどを実行する」にチェックを入れてください。

次に「Webサービス拡張」を選び、「すべての不明なISAPI拡張」の状態を、「許可」にしてください。

IISを再起動すると設定が反映されます。
「既定のWebサイト」のプロパティで「ISAPIフィルタ」を選び、
追加したフィルタ(jakarta)に緑色の矢印が上向きに表示されていればOKです。

ブラウザでサーバーに接続すると、Tomcatの画面が表示されます。
管理画面やサンプルなども動いています。

最後にTomcatのサーバー接続の設定を変更します。
IISから接続できていますが、このままではTomcat単体でもWebサーバーが動いているため、「http://localhost:8080/」でも表示してしまいます。
8080ポートで接続しないようにTomcatの設定を変更します。

「C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf」
に「server.xml」というファイルがありますので、エディターで開きます。
***************************************
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
***************************************
開いたら、上記の部分をコメントアウトしてください。
***************************************
<!--
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
-->
***************************************

Tomcatを再起動し、「http://localhost:8080/」でTomcatの画面が出なくなります。