連携に必要なもの

  • mod_jkのインストール
  • mod_jkの設定

mok_jkのインストール

mod_jkモジュールを使う。

手順

  • 展開
    tar zxvf ファイル名
  • configure
    cofigureのオプションとして、apacheのapxsまたはapxs2を指定する。
    apacheをインストールしたディレクトリをAPACHE_HOMEとすると、
    # ./configure --with-apxs={APACHE_HOME}/bin/apxs
  • make
  • make install

make installによって、{APACHE_HOME}のmodulesディレクトリに
jk_mod.soが配置されているはず。

あとは、apacheとtomcatを連携させるための設定を記述する。

設定ファイル

以下のファイルで連携の設定を行う

  • {APACHE_HOME}/conf/workers.properties
  • {APACHE_HOME}/conf/httpd.conf
  • {TOMCAT_HOME}/conf/server.xml

workers.properties

とにかくすぐに使いたい場合は、以下のように指定する。

worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
  • worker.list ← tomcatとの連携で使用するプロトコルを指定。複数指定する場合はカンマ区切りで指定する
     例) worker.list=ajp12,ajp13
  • worker.ajp13.port ← tomcatがajp13コネクタを使用しているポートを指定。tomcatでのデフォルトは8009なので、8009を指定。
  • worker.ajp13.host ← tomcatが動作しているホスト名を指定。同マシンで動作している場合は、localhostを指定。
  • worker.ajp13.type ← ajp13を指定。ここにajp12など他のものを指定して動作するかは未確認。
  • worker.ajp13.lbfactor ← 不明。調査中。今のところこの設定で問題なし。

詳細は、mod_jkをダウンロード、展開したディレクトリ配下のconf/workers.propertiesを参照。

httpd.conf

httpd.confにmod_jkモジュールを読み込む記述と、mod_jkモジュールの設定を追加する。
以下のような指定ができる。

LoadModule jk_module modules/mod_jk.so
<IfModule jk_module>
JkShmFile       logs/jk.shm
JkWorkersFile   conf/workers.properties
JkLogFile       logs/mod_jk.log
JkLogLevel      warn
JkMount         /-      ajp13
</IfModule>
  • LoadModule
    httpd.confの書式で、モジュールを読み込む時は、
    LoadModule hoge_module modules/mod_hoge.so
    のように指定する。上記は、modules配下にmod_hoge.soがある場合の指定。
    基本的に追加するモジュールは、{APACHE_HOME}/modulesに配置するのが作法。
  • <IfModule>
    moduleがロードされている場合に設定する項目をこのタグの中に記述する。
    hoge_moduleがロードされている場合の設定を指定したい場合は、以下のように記述する。
    <IfModule hoge_module>
    apacheのバージョンによって、モジュールの指定方法が異なる。
    <IfModule mod_hoge.c>
    上記のような指定の仕方もある。モジュールコンパイル前の.c拡張子で指定するのがポイント。
  • JkWorkersFile
    workers.propertiesファイルの場所を指定する
  • JkLogFile
    mod_jkのログ出力ファイルを指定する。指定しなかった場合、{APACHE_HOME}/logs/mod_jk.logに出力される。
  • JkLogLevel
    ログ出力レベルを指定する。
  • JkMount
    ここが一番大事。
    apacheにきたどのリクエストをtomcatへ渡すかを指定する。
    すべてのリクエストをtomcatへ渡す場合は、以下のように指定する。
    JkMount         /-      ajp13
    また、jspファイルへのリクエストをすべてtomcatへ渡す場合は、
    JkMount         /-.jsp      ajp13

特定のディレクトリへのリクエストをtomcatへ渡したい場合は、

JkMount         /hogehoge/-      ajp13

とすると、tomcatのhogehogeコンテキストへリクエストが渡される。

server.xml

workers.propertiesでデフォルトのserver.xml設定にあわせて指定をしているので、特に変更する必要はない。
が、もしかしたら今後のバージョンによって指定の仕方が変わっている可能性があるので確認する。(現tomcatバージョン:6.0.14)

server.xmlの以下の場所を確認。おそらくAJP 1.3で探せば見つかるはず。AJP用のコネクタ。

   <*-- Define an AJP 1.3 Connector on port 8009 -->
   <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

workers.propertiesで指定した

  • worker.list
  • worker.ajp13.port
  • worker.ajp13.type
    とマッチしているか確認。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-04-05 (土) 00:39:30 (710d)