Apache を経由して 80番ポートで Tomcat 6 に接続できるようにする
Tomcat 6 に Apache を経由して接続する方法は下記の 2つがある。
- mod_proxy.so を使って、Tomcat 6 に接続する
Apache Tomcat Configuration Reference - The HTTP Connector - mod_proxy_ajp.so を使って、Tomcat 6 に接続する
Apache Tomcat Configuration Reference - The AJP Connector
mod_proxy.so と mod_proxy_ajp.so の違い
簡単にいうと、
まずは Apache 側の設定を行う
今回の場合は、Mac OS X で設定を行う。
まずは、httpd.conf に mod_proxy.so と mod_proxy_ajp.so が使えるようになっているか確認をする。
(MacPorts から Apache 2.x 系をインストールしていれば、すでにインストール済み状態になっている)
% less /opt/local/apache2/conf/httpd.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
新しく Aapche 用の設定ファイルを作成する
% sudo vi /opt/local/apache2/conf/extra/httpd-tomcat6.conf
Password:
例えば http://localhost/tomcat/ にアクセスした場合に、Tomcat のルートディレクトリ(http://localhost:8080/)へアクセスするように設定する場合は、下記のようになる。
Apache の Location ディレクティブを使う場合は、
<Location /tomcat/> # 下の設定は ajp プロトコルで Apache と Tomcat 間の通信を行う ProxyPass ajp://localhost:8009/ # http プロトコルで Apache と Tomcat 間の通信を行いたい場合は # 上記の設定をコメント行にして、下記をコメントアウトにする。 # ProxyPass http://localhost:8080/ </Location>
ディレクティブ設定を使わない場合は、下記のようになる。
ProxyPass /tomcat/ ajp://localhost:8009/ # 下記は http プロトコルで Apache と Tomcat 間の通信を行う場合の設定 # ProxyPass /tomcat/ http://localhost:8080/
そして、最後にこの新しい設定ファイルを読み込む記述を、httpd.conf 最終行にする。
% sudo /opt/local/apache2/conf/httpd.conf
Include conf/extra/httpd-tomcat6.conf
設定内容に誤りがないことを確認して、Apache を再起動する。
% sudo /opt/local/apache2/bin/apachctl configtest Syntax OK % sudo /opt/local/apache2/bin/httpd -k restart
そして、http://localhost/tomcat/ にアクセスして、Tomcat 6 のページが表示されるか確認をする。
mod_proxy.so と mod_proxy_ajp.so の接続ポートの違い
上記の設定だと http プロトコルは 8080番ポートで Tomcat 6 に接続し、ajp プロトコルの場合は 8009 版ポートでの接続になっている。
なぜかというと、接続待ち側の Tomcat 6 の設定で、http プロトコルの接続は 8080 番で、ajp プロトコルは 8009番ポートになっているからである。
その設定は下記の設定ファイルで確認できる。
% less /opt/local/share/java/tomcat6/conf/server.xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />