Apache側の設定

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

(Last modified: )

Apache側の設定

「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>

※セクションコンテナについては『Locationディレクティブ/LocationMatchディレクティブ:設定が適用されるURLパスを指定する』を参照して下さい。

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 )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。