2010年2月28日日曜日

ApacheとTomcatの連携

mod_proxy_ajpを使用してTomcatとApacheの連携をします。

■前提条件
Tomcatのインストールが終わっていること
今回は、
Tomcatのインストール
Apacheのインストール
にてインストールしたものを使います。

■mod_proxy系のインストール
前回Apacheをインストールした時に、mod_proxy系はインストールしませんでした。
よって、mod_proxy系のモジュールのインストールを行います。(DSOを使います)
(インストール済みの人は飛ばしてください)

mod_proxy系のコンパイル
$ cd /opt/local/src/httpd-2.2.14/modules/proxy
$ /opt/local/apache/bin/apxs -i -c mod_proxy.c proxy_util.c
$ /opt/local/apache/bin/apxs -i -c mod_proxy_http.c proxy_util.c
$ /opt/local/apache/bin/apxs -i -c mod_proxy_ajp.c ajp*.c


ファイルが作成されている事を確認してください
$ ls -ltr /opt/local/apache/modules/mod_proxy*


httpd.confに下記記述を足してmod_proxy_ajpを使えるようにしてください
$ su -
$ vi /opt/local/apache/conf/httpd.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so


ちゃんと組み込めたかを確認する
$ cd /opt/local/apache/bin
$ ./apachectl configtest
Syntax OK

"Syntax OK"と表示されればOKです!
これで、Apacheへの組み込みが終了しました。

■TomcatとApacheの連携
まずはTomcatの設定を見ます。
$TOMCAT_HOME/conf/server.xml
の"AJP/1.3"の部分のポート番号を見つけてください。
<!-- Define an AJP 1.3 Connector on port 8009 -->
<connector port="8009" protocol="AJP/1.3" redirectport="8443">
</connector>

今回はデフォルトの8009ポートです。

ではApacheとの連携を行います。

下記設定ファイルを作成します。
$ su -
$ cd /opt/local/apache/conf/extra
$ vi httpd-proxy.conf
<Location /examples/>
ProxyPass ajp://localhost:8009/examples/
</location>


この作成した設定ファイルをApacheに読み込ませる必要があるので、下記1文を最終行にでも書いてください。
$ su -
$ cd /opt/local/apache/conf
$ vi httpd.conf
Include conf/extra/httpd-proxy.conf


設定が終わったので、エラーがないかを確認しましょう!
$ su -
$ cd /opt/local/apache/bin
$ ./apachectl configtest
Syntax OK

"Syntax OK"とでればOKです!

Apacheを再起動してみましょう!
$ su -
$ cd /opt/local/apache/bin
$ ./apachectl restart


Tomcatが起動していることを確認して自分のWEBサーバにアクセスしてください。
http://192.168.1.xx/examples/

画面が見れたら、ApacheとTomcatの連携ができました!
※URLの最後に"/"を入れないと、ちゃんとマッピングしてくれません
※最後の"/"がなくてもいいように素るにはRewriteルールなどを使ってやってみてください

本当にApacheを経由しているか確認したければ、下記ファイルを見てリクエストがきた事を確認してください。
$ cd /opt/local/apache/logs
$ cat access_log

0 件のコメント:

コメントを投稿