■ このページでは Tomcat と Apache を連携する手順を説明します
Tomcat
はJava Servlet/JSPに対応した Webアプリケーションサーバーです。 Tomcat
には、設定や管理用のHTTPサーバーが内蔵されていて動作確認には便利です。しかし、一般的なクライアントからのリクエストを処理する場合は、Web
サーバーの Apache
と連携させて機能分担すると利点があります。このページでは、WindowsXP/Pro にすでにインストール済みの Tomcat-5.0.28
と Apache-2.0.55 の両者を、Apache Connector jk2 を利用して連携させる手順を説明します。
■ ページのメニュー
- 前準備
- コネクタ Cyote JK2 のダウンロード
- Apache2 の設定
- Tomcat の設定
- Tomcat-Apache の連携と確認
- メモランダム
■ Apache を Tomcat に連携する利点
Tomcat
は単体でHTTPサーバー機能も備えていますがApache と連携させると利点があります。
- 動的なコンテンツ処理はTomcatで処理し、HTML など静的コンテンツはApacheでというような分担処理ができる。
- Tomcat ではできない細かなセキュリティー対策やアクセス制限が Apache 側でできる。
- Apache に複数台の Tomcat を接続して負荷分散をすることもできる。
■ Tomcat と Apache の連携のしくみ
Tomcat と Webサーバー Apache2の連携には
JKコネクター( Coyote
JK2)推奨されています。
現在 IIS、Apache、iPlanet などのWebサーバーに対応したコネクターが用意されています。
ここでは Apache2 とJKコネクターを利用した連携の手順を説明します。
● Webサーバーに Apache2 を利用した場合の処理の流れ
1、クライアントが Apache にリクエストを送る。
2、Apache がクライアントからリクエストを受け取ると、コネクタを介して Tomcat に転送する。
3、Tomcat ではリクエスト( Webアプリケーション ) を実行し、実行結果を再びコネクターを介してApache に転送する。
4、Apache は受け取った実行結果をクライアントに返す。
※ JKコネクターでの通信は AJP 1.3
というプロトコルを利用します。
■ 必要なもの
アイテ
ム
|
今回実
装したもの
|
| Apache サーバー |
Apache-2.0.55 Windows版 |
| Tomcat-4.x 以降 |
Tomcat-4.0.28 |
| JK2 コネクター |
jakarta-tomcat-connector-
jk2.0.4 |
PC
|
Pentium4/1.7GHz 512MB
|
OS
|
WindowsXP/Pro SP2 |
※ Apache の基本的な説明は省略します。
1、Tomcat と Apache を連携させる mod_jk2 を Jakarta-Tomcat の公式サイトからダウンロードする。
Jakarta-Tomcat 公式サイト :
http://tomcat.apache.org
Windows 版 JK2 は以下の JK2 Binary Releas
のカテゴリーからダウンロースする
ダウンロードするファイル :
jakarta-tomcat-connector-jk2.0.4-win32-apache2.0.49.zip
※ JK2 は Tomcat と Apache のバージョンに対応したファイルを注意深く選んでください。
Apache2 側の設定は、モジュール、mod_jk2 をインストールして httpd.conf に適切な設定を追加することです。
1、ダウンロードしたファイルを解凍し、mod_jk2 を
Apache2 下のディレクトリ modules/
にコピーする
2、設定ファイル workers2.properties を作成する
Apache2 下のディレクトリ conf/
に以下の内容のテキストファイル作成し workers2.properties というファイル名で保存する。
この設定により Apache への接続は Tomcat のディレクトリ
/servlet-exsamples/に転送されます。
また、ディレクトリ /jkstatus/ に JK2 のステータスを返します。
[status:]
[uri:/jkstatus/*]
group=status:
[shm:]
disabled=1
[channel.socket:]
[ajp13:]
[uri:/servlets-examples/*]
|
・ モジュール
mod_jk2.so の設定を追加する。
・ 設定ファイル
workers2.propaties
のパスを変更します。
LoadModule jk2_module
modules/mod_jk2.so
<IfModule mod_jk2.c>
#-----------------------------------------------
# Where to find the workers2.properties file
#-----------------------------------------------
#
#JkSet config.file
/usr/local/etc/apache2/workers2.properties
JkSet config.file
"C:/Apache2/conf/workers2.properties"
</IfModule>
|
※ 上記の設定サンプルがダウンロードしたファイル conf/mod_jk2.conf にあります。
4、設定後 Apache を再起動させて設定が有効になったことを確認する
ブラウザーより、URL :
http://localhost/jkstatus をアクセスして次の画面が見えればコネクターの設定は成功です。
設定ファイル workers2.properties に記述した事項が正しく反映されていればApache 側の設定は成功です。
この画面が見えない場合は、httpd.conf での mod_jk2 の設定に問題があります。手順を再点検してください。
Apache 側との接続を仲立ちする Tomcat 側の JK2
コネクターはTomcat 自体に内臓されています。
Tomcat を起動するとJK2 コネクターがデフォルトのままで使用可能になります。
そのため、Apache の設定ファイルに追加された記述にしたがって接続して連携できます。
今回は連携させるだけなので Tomcat 側はデフォルト設定のままで変更しません。
● コネクターの設定ファイルは
server.xml
Tomcat の設定設定は ファイル CATALINA_HOME/conf/server.xml に記述されています。
-------- 途中を省略 ----------
- <Service
name="Catalina">
<Connector
acceptCount="100" connectionTimeout="20000"
disableUploadTimeout="true" port="8080" redirectPort="8443" maxSpareThreads="75"
maxThreads="150" minSpareThreads="25" />
<Connector
port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443" />
- <Engine
defaultHost="localhost" name="Catalina">
- <Host
appBase="webapps" name="localhost">
<Logger
className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true" />
</Host>
<Logger
className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true" />
<Realm
className="org.apache.catalina.realm.UserDatabaseRealm" />
</Engine>
</Service>
|
※ サーバーとして運用する場合、マシンのパワーに応じてこの最大スペア数やスレッド数を調整します。
■ 連携するには起動順序がポイント
上記の設定終了後、両者を連携させるためには次の順序で起動させます。
- Tomcat を起動させる。
- Apache を起動させる。
この起動順序を逆にすると連携できないので注意すること。
また、Tomcat を運用・管理していて再起動する場合は、そのあとで必ず Apache を再起動させます。
- Tomcat は %CATALINA_HOME%\bin\startup.bat をWクリックして起動する。
- Apache は %AHACHE_HOME%\bin\ApacheMonitor を起動して再起動させる。
■ 連携の確認
ブラウザーで workers.propaties で設定した次の
Tomcat 側のディレクトリが80番ポートで見えれば連携は成功です。
URL
: http://localhost/servlets-examples/

Apache からの転送先ディレクトリを変更する場合は、workers.propaties の設定を変更してください。
● 上記の画面が見えない場合は次の事項を確認してください。
- 再度 「Tomcat の再起動」 --> 「Apache の再起動」の順番で再起動する。
- workers.propaties の設定を確認する。
● Tomcat の管理画面には今までどうり 8080
番ポートから接続できます。
Tomcat は 2005年9月をもって Jakarta Project
から Apache Project
に格上げされました。熱心な開発チームのおかげで、それまでのバージョンアップでは改善や多くの機能拡張がされてき
ました。その結果、Tomcat のバージョンと対応する Servlet/JSP バージョンには依存関係があります。
Tomcat
を利用するする場合は、連携させるソフトウェアのバージョンとの依存関係に注意して適切なバージョンを選んでください。またコネクターJK2
についても同様の注意が必要です。
もどる [Top]
--> [書庫3] --> TomcatとApacheの連携