9.Tomcat&Apache 連携

Windows で Tomcat と Apache を連携します。

(1) 連携の目的

 Tomcat は HTTP サーバ機能も提供されます。しかし、パフォーマンス的にはどうしても Apache 等と比べると見劣りがするので、HTTP サーバは Apache を使用し、Tomcat は Apache のアドオンとして動作する Servlet/JSP エンジンとして構成するのが一般的です。

 Tomcat 側と Apache 側のバージョンの組み合わせにより、連携方法が異なります。

 古いバージョンは、取り込むモジュールが異なり、また、Windows かUNIX(LINUX)の違いもあります。連携方法が他のホームページに紹介されているので、その違いを確認してから連携してください。(コネクタ名で検索するとみつかる)

 次の例はコネクタの違い別に連携できたという組み合わせです。この他にも可能な組み合わせがあるかもしれません。

NoTomcatApache使用コネクタ
 1Tomcat5.0.28Apache2.0.54 mod_jk2.so
 2Tomcat4.1.12Apache2.0.42mod_2.0.42.dll
 3Tomcat4.1.10Apache2.0.xjkjni.dll,mod_jk2.dll
 4Tomcat4.0.5Apache2.0.xmod_jk.so
 5Tomcat4.0.3Apache1.3.26mod_webapp.so
 6Tomcat3.xApache1.3.xmod_jk.dll(win) / mod_jk.so(Linux)


 参考ホームページ
    mod_webapp.so : http://www.itnavi.com/apaTomcatForWin.htm
                  : http://www.yest2000.com/connect2.0.html
    mod_jk.dll    : http://homepage1.nifty.com/kingyoshi/tomcat_apache2.htm
                    http://www.jinfonet.jp/manualsrv/en/userguide/intg10tom.htm
    mod_jk.so     : http://www.planet-kz.sytes.net/jserver.html
    mod_jk2.dll   : http://www.lake.its.hiroshima-cu.ac.jp/~mondo/Java/TnE/007.html


(2) 事前準備

 連携作業の前に、Java,apache,Tomcat がインストールされていることが前提です。次の環境下で次項の連携手順の説明となります。

Tomcat   4.1.12
Apache   2.0.42
コネクタ mod_2.0.42.dll
Java     jdk1.3.0_02
OS       Windows 2000

※インストール先フォルダーはどこでもかまいませんが、今回の例は次のとおりです。

Tomcat ==> c:\Program Files\Apache Group\Tomcat4.1\
Apache ==> c:\Program Files\Apache Group\Apache2\
Java   ==> c:\jdk1.3.0_02\

※とくに、Tomcat は次々と新バージョンがリリースされているので、連携する場合は、使用するバージョンに注意する必要があります。



(3) 作業手順


 次の手順で連携します(順序は殆ど関係ありません)。


 1) jni_connect.dll ( 26-Sep-2002 14:42 72K) をダウンロードします。

   ダウンロード (.../jakarta-tomcat-connectors/jk/release/v1.2.0/bin/win32/)

  ※古くなると archives に移動されるので注意します。ダウンロード先は任意でかまいません。


 2) mod_2.0.42.dll (26-Sep-2002 14:43 136K) をダウンロードします。

   ダウンロード (.../jakarta-tomcat-connectors/jk/release/v1.2.0/bin/win32/)

  ※古くなると archives に移動されるので注意します。ダウンロード先は任意でかまいません。


 3) jni_connect.dll,mod_jk-2.0.42.dll を Apache の modules フォルダーの下に置きます。

   c:\Program Files\Apache Group\Apache2\modules\jni_connect.dll
   c:\Program Files\Apache Group\Apache2\modules\mod_jk-2.0.42.dll


 4) Apache の conf フォルダーの httpd.conf を修正します

   c:\Program Files\Apache Group\Apache2\conf\httpd.conf


  ・LoadModule の記述のある部分に次の 6 行を追加します。

LoadModule jk_module modules/mod_jk-2.0.42.dll
JkWorkersFile "c:\Program Files\Apache Group\Tomcat 4.1\conf\workers.properties"
JkLogFile "c:\Program Files\Apache Group\Tomcat 4.1\logs\mod_jk.log"
JkLogLevel warn
JkMount /*.jsp ajp13
JkMount /*/servlet/ ajp13


  ・Listen の記述部分を確認します。

Listen 80


  ・ServerName の記述部分を確認します。
ServerName 127.0.0.1:80 

  ※ httpd.conf 設定例

 ポート番号は、同一コンピュータ内で通信をおこなっているプログラムを識別するアドレスです。ポート番号の80番はHTTPサーバを意味します。ServerName の 127.0.0.1:80は自身(PC)がサーバであることを意味し、Listen は、ポート番号80 に対して接続を受け付けます。


 5) workers.properties を作成します。

   c:\Program Files\Apache Group\Tomcat 4.1\conf\workers.properties

workers.tomcat_home="c:\Program Files\Apache Group\Tomcat 4.1"
workers.java_home=c:\jdk1.3.0_02
ps=\
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=127.0.0.1
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1

※workers.java_home には、Java のインストール先フォルダー c:\jdk1.3.0_02 を指定。
 これがないと、Java アプレットが動作しません。

※worker.ajp13.host には、localhost ここでは 127.0.0.1 を指定。
※ps=\ は、Windows 用( unix は ps=/ )。

※これにより、ApacheからのリクエストをTomcatが受け取れるようになります。



 6) server.xml を修正します。

  Tomcat の8080ポートの受付を停止するため、下のようにコメントアウトします。

   c:\Program Files\Apache Group\Tomcat 4.1\conf\server.xml

<!-- //@san01 2002.9.30 comment out ( Apache server port 80 used)

    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
               port="8080"
               minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="10" debug="0" connectionTimeout="20000"
               useURIValidationHack="false" />

-->

※8080 ポートに代わって、Apache のhttpd.conf で指定した 80 ポートが受け付けになります。

  ※ server.xml 設定例

(4) 連携確認

1) Tomcat を起動します

2) Apache を起動します

3) ホームページの確認

 ブラウザーから次の例で、ホームページを起動して、表示されることを確認します。
 (ホームページの中に、cgi、Java アプレットがあれば、その確認もしてみる)

  http://127.0.0.1/~sgi/index.html

4) Java の起動確認

 ブラウザーから次の例で、表示されることを確認します。

  サーブレット : http://127.0.0.1/examples/servlet/HelloWorldServlet

  JSP     : http://127.0.0.1/examples/jsp/helloworld.jsp

 ※連携する前は、http://127.0.0.1:8080/examples/.... でした。
今回は、http://127.0.0.1:80/examples/.... http://127.0.0.1:80/~sgi となり、port 80 は、 デフォルトなので省略可能です。



 Tomcat はポート8080でリクエストを受け付けますが、これをコメントアウトしました。その代わり、Apache がポート80でリクエストを受け付け、そのうち Servret/JSPについてのみ、Tomcat に連携するようにしました。

 尚、Tomcat のHtml ドキュメントをブラウザで実行するには、httpd.conf に 「Alias / "C:/Program Files/Apache Group/Tomcat 4.1/webapps/"」を定義し、 Tomcat 側のデフォルトにあわせると、いままでどおり表示できます。



(5) jakarta.apache.org/builds/ のdir 構造

 Tomcat のダウンロード先の dir 構造を紹介します(2002.10.02 現在)。すぐ変わる可能性がありますので、あくまでも参考です。URL を指定すると、その配下のリソースが一覧でブラウザーに表示されます。Parent Directory をクリックすれば上位へ、xxxx/ をクリックすれば、下位の内容を表示します。

 http://jakarta.apache.org/builds/
   │
   ├─ jakarta-
   │       tomcat-4.0 ─┬─ archives ─┬─ v4.0.1  25-May-2002 11:22
   │                    │              ├─ v4.0.4  24-Sep-2002 05:03
   │                    │              │     :
   │                    │              │
   │                    │              ├─ v4.0.4  24-Sep-2002 05:03
   │                    │              ├─ v4.1.5  05-Jul-2002 04:02
   │                    │              └─ v4.1.10 24-Sep-2002 05:03
   │                    │
   │                    └─ release  ─┬─ v4.0.5    23-Sep-2002 05:09
   │                                    └─ v4.1.12   23-Sep-2002 02:53
   │                                          └─ jakarta-tomcat-4.1.12.exe
   │                                                    ( 23-Sep-2002 03:26 7.5M )
   │ 
   ├─ jakarta-tomcat ─┬─ archives ─┬─ v3.0      12-Dec-2000 16:13
   │                    │              │    :
   │                    │
   │                    └─ release  ─┬─ v3.3      14-Jan-2002 14:14
   │                                    │    :
   │ 
   └─ jakarta-tomcat-
         connectors/jk ─── release  ─┬─ v1.2.0/bin/win32/mod_jk-1.3.26.dll
                                         │             ( 26-Sep-2002 14:43  136K )
                                         ├─ v1.2.0/bin/win32/jni_connect.dll
                                         │             ( 26-Sep-2002 14:42 72K )
                                         ├─ v1.2.0/bin/win32/mod_jk-2.0.42.dll
                                         │             ( 26-Sep-2002 14:43  136K )


 ※新しくリリースしたものは、release 、古くなると、archives です。バージョンアップしたコネクターは、connectors です。MacOS,Linux,Windows 環境の違いを確認してダウンロードしてください。尚、構成が変更になったときは、上位フォルダーからたどってみてください。

前の章( 8.JSPのカスタムタグ)