mod_jk コネクターを使って Apache と Tomcat を連携する方法を紹介します。
Apache と Tomcat を連携するためにはあらかじめ Tomcat のインストールが完了している必要があります。
mod_jk は Apache JServ プロトコルのバージョン 1.3(ajp 13)を使って通信します。
Apache Tomcat から mod_jk のソースファイルをダウンロードして Apache の DSO モジュールとしてインストールする方法を紹介します。
mod_jk のダウンロードとビルド
mod_jk のソースファイルを Apache Tomcat からダウンロードします。
ダウンロードしたソースファイルを展開して mod_jk のバイナリーを生成します。
# tar xzf tomcat-connectors-1.2.18-src.tar.gz
# cd tomcat-connectors-1.2.18-src/native
# ./configure --with-apxs=/usr/local/httpd/bin/apxs
# make
# cp ./apache-2.0/mod_jk.so /usr/local/httpd/modules
Apache の設定
mod_jk モジュールを読み込むように Apache の設定ファイル httpd.conf を編集して以下の行を追加します。
LoadModule jk_module modules/mod_jk.so
# Where to find workers.properties
JkWorkersFile /usr/local/httpd/conf/workers.properties
# Where to put jk logs
JkLogFile /usr/local/httpd/logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat “[%a %b %d %H:%M:%S %Y] “
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat “%w %V %T”
# Send servlet for context /examples to worker named worker1
JkMount /servlets-examples/* ajp13
# Send JSPs for context /examples to worker named worker1
JkMount /jsp-examples/*.jsp ajp13
mod_jk プログラムの設定ファイル workers.properties を Apache の conf ディレクトリにコピーします。
コピーした workers.properties を以下のように編集します。
#
# workers.tomcat_home should point to the location where you
# installed tomcat. This is where you have your conf, webapps and lib
# directories.
#
workers.tomcat_home=/usr/local/tomcat
#
# workers.java_home should point to your Java installation. Normally
# you should have a bin and lib directories beneath it.
#
workers.java_home=/usr/local/jdk
#
# You should configure your environment slash… ps=\ on NT and / on UNIX
# and maybe something different elsewhere.
#
ps=/
以下省略
Apache と Tomcat の再起動
Tomcat、Apache の順で再起動します。
# /etc/rc.d/init.d/httpd restart
mod_jk の動作確認
Tomcat の 8080 番ポートで動作していたサーブレットや jsp のサンプルアプリケーションがの正しく動作するか確認を行います。
ウェブブラウザを使って http://192.168.0.2/servlets-examples/servlet/HelloWorldExample のようにアクセスして 80 番ポート(Apache が動作するポート番号)でサンプルアプリケーションが動作することを確認します。
またログファイルには以下のようなログが記録されます。
[Tue Sep 12 18:59:28 2006] ajp13 192.168.0.2 0.004016