2005.11.07
Tomcat-5.0.27-r6
Apache-2.0.54-r31
mod_jk-1.2.13

TcomcatとApacheとの連携

ページ内索引
mod_jkのインストール
mod_jkの設定
Apacheの設定
Apacheの起動設定
ApacheとTomcatの連携確認

単純なHtmlで構成された静的なページと、JSP/Servlet等の動的なページが混在するサイトを 運営する場合、Tomcatのみで構成する方法と、ApacheとTomcatを連携させて構成する方法が あります。
しかし、こういった場合はApacheとTomcatを連携して使用する事が推奨されています。
理由としては、Tomcatに比べるとApacheは以下の点で優れているからです。

  • Apacheの方が細かな設定ができる事
  • Apacheは世界中で使用され、信頼性が高い事
  • 静的なページの実行速度はApacheの方が高速である事
また、TomcatとApacheを連携させると、Servlet/JSP のページにアクセスするのに、Apacheと同じ ポートでアクセスすることができます。例えば
http://192.168.1.1:8080/sample/sample.jsp と指定していたものを、
http://192.168.1.1/sample/sample.jsp と,ポート番号の入力を省略した形でアクセスできます。
このようにファイアーウォールで開けなければいけないポートを減らせることも、メリットの一つです。

ApacheとTomcatを連携させるためには、コネクタと呼ばれるものが必要です。
ApacheはTomcatが処理すべきリクエストがあった場合、コネクタを通してTomcatにリクエストを転送します。 このページではコネクタの一つである mod_jk を利用し、Tcomcatのインストールと基本設定で作成したsample.jspをApacheと 連携して動作させる方法について解説します。

※mod_jk2については開発が終了してしまいましたが、こちらにて解説しています。

mod_jkのインストール

mod_jkはGentoo Linuxではunstableとなっています。
unstableのパッケージであるmod_jkをインストールできるように /etc/portage/package.keywords に以下を追加します。
www-mod/mod_jk ~x86

mod_jkをインストールします。
# emerge mod_jk

mod_jkの設定

mod_jkの設定は、/etc/apache2/jk-workers.properties を編集します。
以下はデフォルトの設定内容です。
ワーカajp13のみを使用する場合はデフォルトで設定されているため、編集する必要はありません。
# ワーカ名を設定します。
worker.list=ajp13

# ワーカのタイプを指定します。
# 他に ajp12、jni、lb があります。
worker.ajp13.type=ajp13

# リクエストを待ち受けるポート番号を指定します。
worker.ajp13.port=8009

# リクエストを待ち受けるホスト名を指定します。
worker.ajp13.host=localhost

# 負荷分散ワーカを使用している時に使用されます。
# この値が大きいものほど、多くのリクエストを処理できるものとされます。
worker.ajp13.lbfactor=1

# ajp13ワーカがオープンしておくソケット接続数を指定します。
worker.ajp13.cachesize=10

Apacheの設定

Tomcatが処理すべきURLと、ワーカを設定します。ここでの指定にマッチしたURLがリクエストされた場合、 Tomcatが処理を行います。
設定するファイルは、/etc/apache2/modules.d/88_mod_jk.conf です。
# 拡張子が.jspのものは全てワーカ ajp13 に渡されます。
jkMount /*.jsp ajp13
ワーカ ajp13 は /etc/apache2/jk-workers.properties にデフォルトで定義されています。
ワーカとはServletリクエストを処理するTomcatのインスタンスのことです。

Apacheの起動設定

インストール完了後、Apacheの起動オプションを編集し、Apache を再起動します。
/etc/conf.d/apache2を編集し、起動オプションに "-D JK"を追加します。
APACHE2_OPTS="-D JK"

ApacheとTomcatの連携確認

ApacheとTomcatを再起動します。
# /etc/init.d/apache2 restart
# /etc/init.d/tomcat5 restart
http://192.168.1.1/sample/sample.jspにブラウザからアクセスし、動作確認をしてみてください。
Apacheと連携したsampleアプリケーション実行結果
Apacheと連携した場合のsampleアプリケーション実行結果
Index
Tomcatのインストールと基本設定
TomcatとApacheの連携