はつねの日記

Kinect, Windows 10 UWP, Windows Azure, IoT, 電子工作

ApacheとTomcatの連携は何を使うの?

Apache HTTP ServerApache Tomcatを連携させるにはどうしたらいいでしょうか。

ネット上の情報を探してみるとmod_jk、mod_proxy_ajp、mod_proxy_httpなど色々でてきます。

どれ使えばいいの?というのもありますが、Apache HTTP Server 2.2より前のなんて今更新規で入れないだろうからmod_proxy_ajpを使えばいいです。言いきっちゃいます。mod_proxy_ajpです!

で、mod_proxy_ajpを使うためにはmod_proxyというのも同時に使わないといけないのですが、こちらもApache HTTP Server 2.2以降ならば標準でついてきます。

さて、ここで問題があって「標準でついてくる」というのは「ソースが」という意味で、rpmやyum形態の時に入ってくるかどうかは別問題。

ソースも次のような感じで.configurationで指定しないとダメ

./configure --enable-layout=Apache \
--prefix=/opt/oss/apache/httpd \
--enable-so \
--enable-module=rewrite  \
--enable-mods-shared=all \
--enable-proxy --enable-proxy-ajp \
--disable-deflate

ここ注意点です。標準でついてくるので/etc/httpd/conf/httpd.confファイルに

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

と書けばOK的な情報もあったりしますが、それはあくまでも「--enable-proxy --enable-proxy-ajp」付きでconfigurationしてmakeしてmake installしたときの話です。

 

ここまでできたら/etc/httpd/conf/extra/httpd-proxy.confファイルをつくります。内容は

<Location /hello/>
    ProxyPass ajp://madoka:8009/hello
</Location>
こんな感じでTomcatが動いている「madoka:8009」につなぐ感じです。

で、このファイルのありかを/etc/httpd/conf/httpd.confファイルに書きます。

Include conf/extra/httpd-proxy.conf
ファイルの指定は相対指定にするみたいですね。理由は「/etc/httpd」という場所も設定しだいなのでというところでしょうか。

ここまでできたらApache HTTP Serverにブラウザでつなぎます。

http://homuhomu/hello/helloworld

これでtomcat側のコンテンツが表示されれば、Apache HTTP ServerとTomcatがconnectできたことになります。もうこれで、

交わした約束♪忘れないよブラウザで確かめる♪ 

事が出来ました。