アクセス解析をapacheのログとまとめて行えると便利なので、コネクタを利用してapache→Tomcatへの接続ルートを用意する。 ウチのサーバの場合、外に公開するのはNAT内のapache(TCP:80)だけにしておきたいので、Tomcat(TCP:8080)を野ざらしにしない意味もある。

mod_jk

  • Apache Tomcat - Apache Tomcatから、トップ→[Download/Tomcat Connectors]。
  • JKをダウンロードする。今回使用したのは「JK 1.2.15 Source Release tar.gz」
  • アーカイブを適当な場所に展開してビルドする。このエントリは事後に書いているので細かいことは忘れてしまったが、たぶん下のような感じ。
    > ./configure --with-apxs=/usr/sbin/apxs
    > make
  • できあがった「mod_jk.so」をapacheのmodule置き場に配置し、confにモジュールのロードとログの設定を書く。/etc/httpd/conf.d/tomcat.conf
    LoadModule jk_module modules/mod_jk.so
    JkLogFile /var/log/httpd/mod_jk.log
    JkLogLevel info
  • ウチのサーバの場合、仮想ホスト運用しているので、必要なVirtualHostディレクティブ内にJKのマウント設定を書く。何もかも外に出す必要はないので最低限の範囲で。そうしないとAdminServiceへも外からアクセスできてしまう。
    JkMount /KeitaisoWS/services/KeitaisoKaisekiService* ajp13

起動

  • apache→TomcatへTCPセッションが張られるので、Tomcatが先に起動している必要があるみたいだ。
  • Tomcatを再起動した場合、apacheにSIGHUPを送るなどして再接続が必要。これってapacheが先に起動していた場合でもセッションが確立していなかったら改めて接続を試みる、みたいな動きに出来ないのかな。。
  • ブラウザから、http://passing.breeze.cc/KeitaisoWS/services/KeitaisoKaisekiService?wsdl にアクセスしてコネクタが働いているか確認する。
  • ブラウザから、http://passing.breeze.cc/KeitaisoWS/ にアクセスしてコネクタが働いていないことを確認する。