- - PR -
apache2.2とtomcat5.5をmod_proxyで連携
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-02-29 09:02
アドバイスありがとうございます。 tomcat の方の、conf/server.xml は初期設定と変えていませんが、 上記の内容で、8009ポートの設定がされていることは確認しました。 改めて、ここまでした内容をまとめます。 【インストール時にしたこと】 @tomcat5.5.25のインストール Aapache2.2.8のインストール (インストール時のコマンドでモジュール組み込みをし、連携には「mod_proxy_ajp」を使用) Bapache2のconf/httpd.confに<Location> タグ追加 Ctomcat、apacheの再起動 しかし、 http://<サーバーのIP>/servlets-examples/にアクセスすると、apacheの503エラー になってしまいます。 (http://<サーバーのIP>:8080/servlets-examples/はアクセスできます) 【問題がないか確認した点】 @http://<サーバーのIP>/にアクセスし、apacheが起動しているのを確認 Ahttp://<サーバーのIP>:8080/にアクセスし、tomcatが起動しているのを確認 Bapacheのlogs/error_logを確認(前述の通りです) Capacheのconf/httpd.confの<Location>の記述を確認 D8009ポートがLISTENになっているのを確認 E他のプロセスが8009ポートを使用していないのを確認 Ftomcatのconf/server.xmlに<Connector port="8009" …の記述があるのを確認 他にもお気づきの点があれば、教えていただけますと助かります。 よろしくお願いします。 [ メッセージ編集済み 編集者: non 編集日時 2008-02-29 09:04 ] | ||||
|
投稿日時: 2008-02-29 09:51
Java1.5のバージョンが古いのがちょっと気になりますけど
apache側でバーチャルホスト等、利用してますか? ホスト名があってないのかも apacheのhttpd.confのServerNameと tomcatのserver.xmlのEngineのdefaultHost属性、Hostのname属性 はどのように設定されてます? | ||||
|
投稿日時: 2008-02-29 11:07
apacheとtomcatはほぼ初期設定のままで、バーチャルホストの設定などはしていません。 ご指摘いただいた場所を見てみました。 ・・・この設定をどのようにすれば良いのでしょうか? 【apacheのhttpd.conf】------------------------------------------------------- #ServerName www.example.com:80 【tomcatのserver.xml】------------------------------------------------------- <Engine name="Catalina" defaultHost="localhost"> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> ------------------------------------------------------------------------------ | ||||
|
投稿日時: 2008-02-29 13:52
設定はあっているようです。
tomcat側でエラーになっているのかも。 -- [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) -- tomcat側のstdout,stderrに何かエラーが出てませんか? tomcatのserver.xmlのAccessLogValveを有効にして tomcat側のアクセスログを確認できます? | ||||
|
投稿日時: 2008-02-29 15:38
【tomcatのserver.xml】のAccessLogValveを有効にしました--------------- <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/> ---------------------------------------------------------------------- http://<サーバーのIP>/servlets-examples/にアクセスしても、 tomcatのアクセスログには何も書き込まれませんでした。 http://<サーバーのIP>/servlets-examples/にアクセスして 503エラーが表示されるまで1分くらいかかるので、 その間にtomcat側でエラーを起こしているのかもしれません。 自分のPC(Windows)でも、apacheとtomcatが連携できるか試してみたら、 httpd.confを同じ設定にするだけで連携が出来ました。 Linuxのtomcatをインストールし直してみようと思います。 | ||||
|
投稿日時: 2008-02-29 16:48
ちょっと気になって調べてみましたが
どうもmod_proxy_ajpの障害のようですね。 http://www.issociate.de/board/post/306888/Apache_2.2_and_mod_proxy_ajp_bug_workaround.html http://issues.apache.org/bugzilla/show_bug.cgi?id=36495 こうなっちゃた場合通常のmod_proxyで対処するしかないようです http://confluence.atlassian.com/display/DOC/Using+Apache+with+mod_proxy | ||||
|
投稿日時: 2008-03-03 11:07
教えて頂いてありがとうございます!! mod_proxy_ajpの障害だったとは・・・。 自分の設定が間違えていないかばかり調べていたので、そういう部分も考えなければいけないんですね。 教えていただいたmod_proxyで対応しました。 以下のように設定したところ、連携できるようになりました。 ----------------------------------------------------------------------------- ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /servlets-examples http://localhost:8080/servlets-examples ProxyPassReverse /servlets-examples http://localhost:8080/servlets-examples ------------------------------------------------------------------------------ 本当に丁寧に教えて下さいまして、助かりました。 ありがとうございました。 | ||||
|
投稿日時: 2008-03-03 11:49
手元にOSを入れただけの環境があったので、書いてあった
Linux jdk1.5.0_08 apache2.2.8 tomcat5.5.25 で構築しましたが何等問題ありませんでした。 apacheのオプションも # ./configure --enable-so --enable-proxy --enable-proxy-ajp に合わせてあります、何が原因で起きていたのかが気になるところですね。 nonさんにとっては問題が解決する事が第一だとは解っているんですが、どうにも気になって・・・ |