- PR -

apache2.2とtomcat5.5をmod_proxyで連携

投稿者投稿内容
non
会議室デビュー日: 2008/01/30
投稿数: 12
投稿日時: 2008-02-27 14:59
お世話になります。
apacheとtomcatの連携が上手くいかずに困っています。

http://<サーバのIP>/
http://<サーバのIP>/8080/
はそれぞれ確認できるので、apacheとtomcatはそれぞれ動作しているのが確認できます。

しかし、
http://<サーバのIP>/servlets-examples/
と指定しても、ページが表示されず、apacheの503エラーになります。
エラーを確認すると、

【apache2/logs/error_logの内容】
File does not exist: /usr/local/apache2/htdocs/servlets-examples

と、tomcat(/usr/local/tomcat/webapps/servlets-examples)と連携されていないようです。

apache2ではhttpd.confに追記するだけで、tomcatと連携できるようなのですが・・・。
いろいろ調べてみたのですが、わかりません。

ご存知の方、解決策を教えていただけないでしょうか。
よろしくお願いします。


【環境】
Linux
jdk1.5.0_08
apache2.2.8
tomcat5.5.25

【apache2のインストール時のコマンド】
# tar zxvf httpd-2.2.8.tar.gz
# cd httpd-2.2.8
# ./configure --enable-so --enable-proxy --enable-proxy-ajp
# make
# make install

【httpd.confに追記した内容】
<Location /jsp-examples/>
ProxyPass ajp://localhost:8009/jsp-examples/
</Location>
<Location /servlets-examples/>
ProxyPass ajp://localhost:8009/servlets-examples/
</Location>

#telnet localhost 8009 は接続できます。
加納正和
ぬし
会議室デビュー日: 2004/01/28
投稿数: 332
お住まい・勤務地: 首都圏
投稿日時: 2008-02-28 01:10
引用:

nonさんの書き込み (2008-02-27 14:59) より:

http://<サーバのIP>/servlets-examples/
と指定しても、ページが表示されず、apacheの503エラーになります。
エラーを確認すると、

【httpd.confに追記した内容】
<Location /jsp-examples/>
ProxyPass ajp://localhost:8009/jsp-examples/
</Location>
<Location /servlets-examples/>
ProxyPass ajp://localhost:8009/servlets-examples/
</Location>

#telnet localhost 8009 は接続できます。




とりあえず気がついたのだけ。

(1)http.confが違うところにある。->Locationが有効になってない
(2)8009が違うプログラムが使ってる。->telnetができるだけだとtomcatを起動してなくてもtelnet 8009が出来てしまうはず。

の可能性はつぶしたでしょうか。

non
会議室デビュー日: 2008/01/30
投稿数: 12
投稿日時: 2008-02-28 08:36
引用:

加納正和さんの書き込み (2008-02-28 01:10) より:

(1)http.confが違うところにある。->Locationが有効になってない
(2)8009が違うプログラムが使ってる。->telnetができるだけだとtomcatを起動してなくてもtelnet 8009が出来てしまうはず。

の可能性はつぶしたでしょうか。



ご返答ありがとうございます。

(1)httpd.confは/usr/local/apache2/confに配置しています。
(2)tomcatを停止すると、telnet 8009出来なくなるので、他のプロセスが使用していることはないと思います。

他にもお気づきの点があれば、教えていただけますと助かります。
よろしくお願いします。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2008-02-28 10:13
mod_jkってログ吐けませんでしたっけ?そこから何か見えないですかね。
non
会議室デビュー日: 2008/01/30
投稿数: 12
投稿日時: 2008-02-28 10:37
引用:

mioさんの書き込み (2008-02-28 10:13) より:
mod_jkってログ吐けませんでしたっけ?そこから何か見えないですかね。



今回はApache2.2+Tomcat5を「mod_jk」ではなく「mod_proxy_ajp」で連携させようとしています。

apache2/logs/error_logを見ているのですが、
----------------------------------------------------------------------
[error] [client ***.***.***.**] File does not exist: /usr/local/apache2/htdocs/servlets-examples
[error] (70007)The timeout specified has expired: ajp_ilink_receive() can't receive header
[error] ajp_read_header: ajp_ilink_receive failed
[error] (120006)APR does not understand this error code: proxy: read response failed from (null) (localhost)
-----------------------------------------------------------------------

apache2のhttpd.confは読み込まれているようですが、
http://<サーバーのIP>/servlets-examplesにアクセスすると、
/usr/local/tomcat/webapps/servlets-examplesではなく
/usr/local/apache2/htdocs/servlets-examples を探しに行ってしまい、
ファイルが見つからずにエラーとなっているようです。
サーブレットの配置に問題があるのでしょうか?
flatline
大ベテラン
会議室デビュー日: 2005/09/22
投稿数: 102
投稿日時: 2008-02-28 12:25
LoadModule proxy_module modules/mod_proxy.so

とか記述していますか?

うちでは、

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

を記述しています。不要なものもあるかもしれませんが(^^;
non
会議室デビュー日: 2008/01/30
投稿数: 12
投稿日時: 2008-02-28 12:32
引用:

flatlineさんの書き込み (2008-02-28 12:25) より:

LoadModule proxy_module modules/mod_proxy.so

とか記述していますか?



アドバイスありがとうございます。
その辺の記述に関しては、
http://d.hatena.ne.jp/seiunsky/20060716/1153079308
辺りを参考に、
【apache2のインストール時のコマンド】---------------------------------------
# tar zxvf httpd-2.2.8.tar.gz
# cd httpd-2.2.8
# ./configure --enable-so --enable-proxy --enable-proxy-ajp
# make
# make install
----------------------------------------------------------------------------
で、インストール時にモジュールを組み込むようにしました。
/usr/local/apache/bin/httpd -M コマンドでproxy_ajpが組み込まれているのを確認しました。
flatline
大ベテラン
会議室デビュー日: 2005/09/22
投稿数: 102
投稿日時: 2008-02-29 00:55
tomcat の方の、conf/server.xml 内に、

<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

がありますか?
または別のポート番号になっていないでしょうか?

スキルアップ/キャリアアップ(JOB@IT)