読者です 読者をやめる 読者になる 読者になる

ボールを蹴りたいシステムエンジニア

ボール蹴りが大好きなシステムエンジニア、ボールを蹴る時間確保の為に時間がある時には勉強する。

ApacheとTomcatの連携(さくらVPS)

ApacheTomcatとインストールのインストールが完了しました。
今度はこれらの連携をしたいと思います
連携にはApacheモジュールのmod_proxy_ajpを利用します

手順

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_so.cありました。
そいうえばApacheインストール時のコンパイル引数で指定したや

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配下では無く、
インストール時に作成したソース側のディレクトリです。
最初勘違いしてインストール先のディレクトリ見て
無い!って焦りました

Apache拡張モジュールのビルド・インストール
cd /usr/local/src/httpd-2.2.25/modules/proxy/
/usr/local/apache/bin/apxs -ica mod_proxy.c proxy_util.c
/usr/local/apache/bin/apxs -ica mod_proxy_ajp.c ajp_*.c

インストール時のオプション「a」で
httpd.confにLoadModuleディレクティブを追加してくれるそうです

httpd.confでのLoadModule確認

httpd.confに追加したモジュールのLoadModuleディレクティブが
記述されているか確認します

less /usr/local/apache/conf/httpd.conf

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

mod_proxy.cとproxy_util.cの設定あればOKです

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" />
httpd-proxy.confのインクルード
作成したhttpd-proxy.confをhttpd.confでインクルードします

最終行にでも追記すればOKです
httpd-proxy.confへのパスは相対パスで指定しています

vi /usr/local/apache/conf/httpd.conf                                                     

Include conf/extra/httpd-proxy.conf      
TomcatApacheの再起動

設定を反映する為にTomcatApacheを再起動します

TomcatApacheの連携確認

ブラウザより
http://localhost/examples/
へアクセスしてTomcatとの連携を確認

Apache Tomcat Examples」って内容のページが表示されればOKです
無事連携出来ています