- - PR -
apache2.2とtomcat5.5をmod_proxyで連携
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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 は接続できます。 | ||||
|
投稿日時: 2008-02-28 01:10
とりあえず気がついたのだけ。 (1)http.confが違うところにある。->Locationが有効になってない (2)8009が違うプログラムが使ってる。->telnetができるだけだとtomcatを起動してなくてもtelnet 8009が出来てしまうはず。 の可能性はつぶしたでしょうか。 | ||||
|
投稿日時: 2008-02-28 08:36
ご返答ありがとうございます。 (1)httpd.confは/usr/local/apache2/confに配置しています。 (2)tomcatを停止すると、telnet 8009出来なくなるので、他のプロセスが使用していることはないと思います。 他にもお気づきの点があれば、教えていただけますと助かります。 よろしくお願いします。 | ||||
|
投稿日時: 2008-02-28 10:13
mod_jkってログ吐けませんでしたっけ?そこから何か見えないですかね。
| ||||
|
投稿日時: 2008-02-28 10:37
今回は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 を探しに行ってしまい、 ファイルが見つからずにエラーとなっているようです。 サーブレットの配置に問題があるのでしょうか? | ||||
|
投稿日時: 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 を記述しています。不要なものもあるかもしれませんが(^^; | ||||
|
投稿日時: 2008-02-28 12:32
アドバイスありがとうございます。 その辺の記述に関しては、 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が組み込まれているのを確認しました。 | ||||
|
投稿日時: 2008-02-29 00:55
tomcat の方の、conf/server.xml 内に、
<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" /> がありますか? または別のポート番号になっていないでしょうか? |