TOP / 環境構築 / ApacheとTomcatの連携

CentOS5.5でのApache2.2とTomcat5.5の連携

はじめに

CentOS5.5では、標準でApacheとTomcatをインストールすると、Apacheは2.2系、Tomcatは5.5系がインストールされます。またTomcat4やRedHat9の時代のように複雑な設定をしなくても、すぐにApache2.2とTomcat5.5のproxy_ajpモジュールでの連携が可能です。

まず、Apache2.2は/etc/httpd/conf/httpd.confにServerNameなど適切に設定し起動できるようにします。これはCentOS5.5とApache2.2をキーワードにGoogle検索を行えばすぐにやり方が分かると思います。その後、/etc/httpd/conf.d/proxy_ajp.confのコメントアウトされているProxyPass部分を修正します。/etc/httpd/conf.d内のconfigファイルはApache2.2の起動時に読み込まれるのでProxyPassの修正のみです。

これで設定は終わりです。Tomcat4の時代とは異なりかなり簡単になっていますね。またCentOS5.5ではTomcat5.5は標準で8009番で連携を行うようになっているため特に設定する必要はありません。(/etc/tomcat5/server.xmlの102行目)

修正前
 #ProxyPass /tomcat/ ajp://localhost:8009/
 #ProxyPass /examples/ ajp://localhost:8009/jsp-examples/
修正後
 ProxyPass /tomcat/ ajp://localhost:8009/
 ProxyPass /examples/ ajp://localhost:8009/jsp-examples/

設定後はTomcat5とApache2を順に起動すればhttp://あなたのIPアドレス/tomcat/で連携ができます。

起動
 /etc/init.d/tomcat5 start
 /etc/init.d/httpd start

トラブルシューティング

また、開発などで8080ポートを使う時に通信ができない場合は、ファイヤウォールがブロックしている可能性があります。その場合はroot権限でsystem-config-securitylevelでiptablesの設定を行います。カスタマイズでwebcache:tcpまたは、8080:tcpと入力すればポートが解放されます。またiptables --listでどのポートが解放されているのか分かるのでトラブルシューティングに役立つと思います。

Apache2.0.xとTomcat4.0.xの連携

はじめに

ここでは、Apache2.0.47とTomcat4.0.27をjk2で連携させる手順を説明します。設定の詳細は説明しません。接続することが目的です。設定ファイルをviなどで手入力せずに、コピー&ペーストして設定してください。私自身viで実際に書いてみる主義ですが、今回は結構痛い目にあいました。妥協できない方が多くいると思いますがたまには楽しましょう。シンタックスエラーで躓くのではなく、設定ファイルがどのように構成されているかを解析するのに時間を使ってもらいたいと思います。

対象読者

  • Apache2.0.47とTomcat4.0.27をjk2で連携させる手順を探し回っている方
  • apache2.0.47とtomcat4.0.27をダウンロードして動作確認した方

注意:上記は、問題なくできている事が前提です。これらについては説明しません。理解できる方が読者対象となります。

動作環境

  • Red Hat Linux release 9 (Shrike)
  • Apache 2.0.47
  • Tomcat 2.0.27
  • JK2 Connector version 2.0.2

OSは特に意識しなくても良いと思います。Solarisなどでも問題ないと思います。それよりもApache,Tomcat, JK2のバージョンの違いで動作できない事が発生しやすいです。

コネクタのダウンロード

注意:JK2コネクタのバージョンに気をつけてください。今回使用するのはv2.0.2です。実際に他のサイトなどを参考にapache+tomcat連携を行ったときにv1.0.xでJK2の設定を行って泥沼に陥りました。 http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk2/release/v2.0.2/src/のリンクを張っておきます。release1のディレクトリと 紛らわしいのでくどいようですが、注意してください。

コンパイル

tarを展開すると、buildconf.shが確認できますので、権限(Permission)を変更して実行してください。


    $ tar -xvzf jakarta-tomcat-connectors-jk2-2.0.2-src.tar.gz  
    $ cd jakarta-tomcat-connectors-jk2-2.0.2-src/jk/native2
    $ chmod 777 buildconf.sh
    $ ./buildconf.sh

次にコンパイルしますが、$APACHE_HOMEに自分のAPACHEのディレクトリを記述してください。



    $ ./configure --with-apxs2=$APACHE_HOME/bin/apxs
    $ make

make installはありません。以下のようにコピーします。


    cp ../build/jk2/apache2/mod_jk2.so  $APACHE_HOME/modules/.

これでプロキシ用のモジュールを配置しました。後は設定ファイルの修正だけです。設定ファイルはapacheと tomcat用に2つ存在します。

Apacheの設定

httpd.confの最後にmod_jk2.soの場所を指定します。


    LoadModule jk2_module modules/mod_jk2.so

$APACHE_HOME/conf/workers2.propertiesを作成します。(小文字のsが入りますので注意してください。設定は以下のようになります。


    [logger.file:0]
    level=ERROR
    file=${serverRoot}/logs/jk2.log

    [channel.socket:localhost:8009]
    host=XX.XX.XX.XX
    [uri:/examples/*]

    [status:]
    [uri:/jkstatus/*]
    group=status:

    [shm:]
    disabled=1

Apache側の設定はこれで終了です。

Tomcatの設定

jk2.propertyの設定はしません。デフォルトではポート8080番を利用しているので$CATALINA_HOME/conf/server.xmlの設定からコメントアウトします。91行目付近からのタグです。

アクセス確認

自分のIPアドレスでアクセスしてみてください。正常にapacheから呼べれば成功です。


    http://localhost/examples/jsp/index.html

更新履歴

  • 土 7 5 02:24:42 JST 2008


イバラキングへのリンク Get Firefox Valid XHTML 1.1 Apple Darwinへのリンク