Windows で Tomcat と Apache を連携します。
Tomcat は HTTP サーバ機能も提供されます。しかし、パフォーマンス的にはどうしても Apache 等と比べると見劣りがするので、HTTP サーバは Apache を使用し、Tomcat は Apache のアドオンとして動作する Servlet/JSP エンジンとして構成するのが一般的です。
Tomcat 側と Apache 側のバージョンの組み合わせにより、連携方法が異なります。
古いバージョンは、取り込むモジュールが異なり、また、Windows かUNIX(LINUX)の違いもあります。連携方法が他のホームページに紹介されているので、その違いを確認してから連携してください。(コネクタ名で検索するとみつかる)
次の例はコネクタの違い別に連携できたという組み合わせです。この他にも可能な組み合わせがあるかもしれません。
No | Tomcat | Apache | 使用コネクタ |
1 | Tomcat5.0.28 | Apache2.0.54 | mod_jk2.so |
2 | Tomcat4.1.12 | Apache2.0.42 | mod_2.0.42.dll |
3 | Tomcat4.1.10 | Apache2.0.x | jkjni.dll,mod_jk2.dll |
4 | Tomcat4.0.5 | Apache2.0.x | mod_jk.so |
5 | Tomcat4.0.3 | Apache1.3.26 | mod_webapp.so |
6 | Tomcat3.x | Apache1.3.x | mod_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
連携作業の前に、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 は次々と新バージョンがリリースされているので、連携する場合は、使用するバージョンに注意する必要があります。
次の手順で連携します(順序は殆ど関係ありません)。
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 の記述部分を確認します。
・ServerName の記述部分を確認します。
※ 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 設定例
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 環境の違いを確認してダウンロードしてください。尚、構成が変更になったときは、上位フォルダーからたどってみてください。