あしたは晴れるかな。ii

駅前SEのお勉強ブログです。備忘録を兼ねて徒然事をアップしていきます。

Apache - Tomcat 連携

ApacheTomcatAJPコネクタで連携します。

Apache 2.2系にはAJPプロトコル通信を可能にするmod_proxy_ajpモジュールがあり、これにより相互通信を実施します。(Apache2.0以 前はmod_jkモジュールを利用)

例の事ながら、参考サイトはこちらにお世話になりました。

http://thinkit.co.jp/free/article/0708/2/9

 

目標は、前回作成した helloword にApache からアクセスすることです。

 

 そもそも Tomcat は Web サーバ機能も持っていますが、やはり本家の Apache に任せた方がよいでしょうとのことです。

Tom猫さんの Web サーバ機能ってデバッグ用らしいですね。

 

Apache 側の設定

Apache のインストールディレクトリ $APACHE_PATH = /etc/httpd

としています。

 

(1) アプリケーションごとに conf ファイルを作成します。

面倒くさいですね。。

$APACHE_PATH/conf/extra

ディレクトリを作成します。このディレクトリの中に、

$APACHE_PATH/conf/extra/httpd-helloworld.conf

<Location /helloworld/>
  ProxyPass ajp://localhost:8009/helloworld/
</Location>

を新規作成します。

/helloworld/ が呼び出されれば、port=8009 で呼び出しますよという設定らしい。

 

(2) httpd の conf ファイルを編集します。

$APACHE_PATH/conf/httpd.conf を編集します。

 

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

AJP用のモジュールを読み込むようにします。

※デフォルトでONになっていました。

 

Include conf/extra/httpd-helloworld.conf

(1) で作成した extra conf ファイルを読み込みます。

 

<!--
  <Connector
        port="8080"
        redirectPort="8443"
        minSpareThreads="25"
        connectionTimeout="20000"
        maxThreads="150"
        maxSpareThreads="75">
    </Connector>
-->

今まで有効にしていた 8080 port を閉じます。

※ここでブラウザから http://localhost:8080 を確認しようとしてもつながらなくなります。tomcat 再起動がいりますが。

※ 8009 port が有効になっていることも確認できます。

 

(3) tomcat / apache の再起動

/etc/init.d/tomcat restart

apachectl restart

 

 

準備完了です。

ブラウザから http://localhost/helloworld/hello/ にアクセスすると HelloWorld !

無事確認できました。

 

その昔、mod_jk でやろうとしたときはハマったのですが、なんでやったかなぁ。