apache と tomcat を mod_jk で連携する

ちょっと試してみたのでメモ。

1.apacheのインストール

yumapacheをインストールする。

# yum -y install httpd-devel

2.mod_jkのダウンロード → ビルド

Apache Tomcat - Tomcat Connectors (mod_jk) Downloadsから最新のソースコードを取得してビルド(1.2.27が最新だった)。以下、実行したコマンドを列挙。

# wget http://ftp.riken.jp/net/apache/tomcat/tomcat-connectors/jk/source/jk-1.2.27/tomcat-connectors-1.2.27-src.tar.gz
# tar xzf tomcat-connectors-1.2.27-src.tar.gz
# cd tomcat-connectors-1.2.27-src/native
# ./configure --with-apxs=/usr/sbin/apxs
# make
# make install
# mv ../conf/workers.properties /etc/httpd/conf.d/
# cd ../../
# rm -fr tomcat-connectors-1.2.27-src*

workers.properties を /etc/httpd/conf.d に移しているが、 /etc/httpd/conf.d じゃないとダメ、ということではなく、どこでもいいのだが関連ファイルは近くにあったほうがいいだろうということで。

3.workers.propertiesを編集する

workers.propertiesの内容を自分の環境に合わせて編集する。

  • workers.tomcat_home(A)
  • workers.java_home(B)
  • worker.inprocess.jvm_lib(Unix)(C)

ぐらいか。あと、ajp12の部分はコメントアウトしたぐらい。

workers.properties
--
  :
workers.tomcat_home=/usr/local/bin/tomcat  #A:インストールしたディレクトリに書き換え
  :
workers.java_home=/usr/java/jdk1.6.0_12  #B:インストールしたディレクトリに書き換え
  :
# Unix - Sun VM or blackdown
worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)lib$(ps)i386$(ps)classic$(ps)
libjvm.so  #C:コメントアウトしていたのを外しただけ
--

4.mod_jkの設定ファイルを作成する

mod_jkの設定ファイルを mod_jk.conf とし、/etc/httpd/conf.d に作成する。内容はこんな感じ。

mod_jk.conf
--
# Load mod_jk module
LoadModule    jk_module  modules/mod_jk.so
# Where to find workers.properties
JkWorkersFile /etc/httpd/conf.d/workers.properties
# Where to put jk logs
JkLogFile     /var/log/httpd/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 JSPs  for context / to worker named ajp13
JkMount /CONTEXT_PATH* ajp13
--

"JkWorkersFile" に workers.properties を指定する。
CONTEXT_PATH にアプリケーションのパスを指定する。

5.apacheを(再)起動する

apacheを(再)起動して終了。