ApacheとTomcatの連携(さくらVPS)
ApacheとTomcatとインストールのインストールが完了しました。
今度はこれらの連携をしたいと思います
連携にはApacheモジュールのmod_proxy_ajpを利用します
・環境
さくらVPS Linux CentOS release 6.4 (Final) Apache2.2.25 Tomcat7.0.42 Java1.7.25
LinuxへのApacheインストール(さくらVPS) - ボールを蹴りたいシステムエンジニア
LinuxへのTomcat7インストール(さくらVPS) - ボールを蹴りたいシステムエンジニア
手順
1.モジュールのインストール
mmod_soの存在確認
mod_soはDSO(動的共有オブジェクト=実行時にモジュールをロード・アンロードする仕組み)を実現
するために必要。
/usr/local/apache/bin/httpd -l Compiled in modules: core.c prefork.c http_core.c mod_so.c
mod_proxy_ajpの存在確認
Apacheにmod_proxy_ajpが存在するか確認します
ls /usr/local/src/httpd-2.2.25/modules/proxy/
mod_proxy.cとproxy_util.cがあればOK
※注意※
インストール先のApacheHOME配下では無く、
インストール時に作成したソース側のディレクトリです。
最初勘違いしてインストール先のディレクトリ見て
無い!って焦りました
2.連携の為の設定
httpd-proxy.confファイル作成
Tomcat側へアクセスを飛ばす設定をhttpd-proxy.confファイルに記述します
httpd.conに直接記述しても良いのですが、Apache2.2系の記述方法では
「httpd-proxy.conf」ファイルを別途作成しインクルードするそうですので
今回はそれに従います。
vi /usr/local/apache/conf/extra/httpd-proxy.conf <Location /examples/> ProxyPass ajp://localhost:8009/examples/ </Location>
httpd.confにInclude文が無い場合は下記を追記する必要があります
Include conf/extra/httpd-proxy.conf
上記の設定では、http://localhost/examples/へのアクセスは
Tomcat側に飛ばしますよーって設定です
Tomcat側へはAJP/1.3プロトコルで8009番ポートを使って飛ばしています
8009はデフォルトの設定です
ちなみにTomcat側の設定ファイルでは以下の様に設定されています
複数Tomcat起動してディレクティブ毎にTomcatを設定する場合は
ここでのポート番号を被らないように設定する必要があります
less /usr/local/tomcat7/conf/server.xml <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />