Apache HTTP Serverとの連携

次に、Apache Tomcat 6.0とApache HTTP Server 2.2を連携させてみる。方法はTomcat 5.5のときと変わっていない。本稿ではApache HTTP ServerのサイトからダウンロードしたApache 2.2.4を使用した。

TomcatとApacheの通信はAJPコネクタによって実現している。Apache 2.2.xではmod_proxy_ajpを使用することで、TomcatのAJPコネクタを利用できる。したがってhttpd.confにおいてリスト5の2行をコメントインすればよい。

リスト5 httpd.confのmod_proxy_ajpを有効にする

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

続いてTomcat側に処理を任せたいURLをリスト6のように指定する。この例の場合、「http://localhost/examples/」にアクセスされたらTomcatのexample以下へ、「http://localhost/mysample/」にアクセスされたらTomcatのTomcat6Sample以下へリダイレクトされる(ドメインがlocalhostの場合)。

リスト6 httpd.confでリダイレクト先を指定

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

<Location /mysample/>
ProxyPass ajp://localhost:8009/Tomcat6Sample/
</Location>

なお、8009ポートはTomcatのAJPコネクタがデフォルトで待機しているポートで、これはserver.xmlをリスト7のように書き換えることで変更できる。

リスト7 server.xmlにおけるAJPコネクタの設定

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

TomcatとApacheをそれぞれ再起動し、ブラウザから「http://localhost/examples/」にアクセスしてTomcatのサンプルページが表示されたら設定は成功だ。