Apache側の設定

広告

ここからはApache側の設定です。Apache2.2系の場合は「mod_proxy_ajp」を利用しますので、まず「mod_proxy」と「mod_proxy_ajp」のモジュールを読み込むように変更します。

「httpd.conf」ファイルで「mod_proxy_ajp」で検索して下さい。デフォルトでは99行目付近にあります。

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

どちらもコメントになっていると思いますので先頭の「#」を外します。

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

これで「mod_proxy」と「mod_proxy_ajp」のモジュールが読み込まれるようになります。

次にサーブレットに対するリクエストがあった場合の設定を行います。今回「http://localhost/hello/」で始まるURLを使ってアクセスがあった場合にTomcat側のファイルを呼び出すようにします。そこでセクションコンテナとして「Location」を使って次のように記述します。

<Location /hello/>

</Location>

※セクションコンテナについては『設定が有効な範囲を指定する(セクションコンテナ)』を参照して下さい。

Tomcat側へアクセスを飛ばす設定をこの中に記述します。Tomcat側へはAJP/1.3プロトコルで8009番ポートを使って接続を行いますので次のように記述して下さい。

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

これを「httpd.conf」ファイル内に記述すれば完了ですが、Apache2.2系の記述方法に従って「httpd-proxy.conf」ファイルを別途作成し、上記をファイル内に記述します。そして「httpd.conf」ファイルには「Include」を使って「httpd-proxy.conf」を呼び出すようにします。

Include conf/extra/httpd-proxy.conf

では試してみます。「http://localhost/hello/helloworld」にブラウザからアクセスしてみます。

mod_proxy_ajpを使った接続

上記のように表示されればApache経由でTomcat側のサーブレットの呼び出しに成功しています。

( Written by Tatsuo Ikura )