- PR -

Apache2.2とTomcat5.5間の連携について

投稿者投稿内容
まじぇ
常連さん
会議室デビュー日: 2006/05/31
投稿数: 22
投稿日時: 2006-05-31 17:16
初めまして、まじぇと申します。
今まではずっと見ているだけだったのですが
どうしても解決できない問題がありまして、質問させて下さい。

環境:
WinXP Pro SP2
Apache2.2.2
Tomcat5.5.17

デフォルトの設定から
conf/extra/に
httpd-proxy.confを新規作成し、
内容を・・・
<Location /jsp-examples/>
ProxyPass ajp://localhost:8009/jsp-examples/
</Location>
としました。
また、httpd.confに
Include conf/extra/httpd-proxy.confを追加し、
mod_proxy.soとmod_proxy_ajp.soをインクルードするようにしました。

この設定で、tomcat→apacheの順に起動後、
http://localhost:8080/とhttp://localhost/にはアクセスできますが、
http://localhost/jsp-examples/にアクセスすると
503が返ってきます。

なぜ、503が返ってくるのかが理解できず困っています。
不備があればご指摘頂けないでしょうか?
ポリンキー
会議室デビュー日: 2006/06/03
投稿数: 1
投稿日時: 2006-06-03 01:24
はじめまして。ポリンキーと申します。

>デフォルトの設定から
>conf/extra/に
>httpd-proxy.confを新規作成し、
>内容を・・・
><Location /jsp-examples/>
>ProxyPass ajp://localhost:8009/jsp-examples/
></Location>
>としました。
>また、httpd.confに
>Include conf/extra/httpd-proxy.confを追加し、
>mod_proxy.soとmod_proxy_ajp.soをインクルードするようにしました。
上記の件ですが、私もいろいろと調べたのですがApache2.xとTomcat5.xを連携する場合、設定のしかたが少し違うみたいですね。

私が使用している環境はWindowsXP/Apache2.0.52/Tomcat5.5.4ですが
以下の設定で動いています。

○Apacheインストールディレクトリ/Apache2/modules/mod_jk2.soを配置
○Apacheインストールディレクトリ/Apache2/conf/httpd.confの最後の行に以下を追加
LoadModule jk2_module modules/mod_jk2.so

○Apacheインストールディレクトリ/Apache2/conf/workers2.propertiesのファイルを作成して以下を記述
----------------------
[status:]
[uri:/jkstatus/*]
group=status:
[shm:]
disabled=1
[channel.socket:]
[ajp13:]
[uri:/test/*]

(tomcatのwebappsディレクトリ直下に置いたときのディレクトリ)
---------------------

○Tomcatインストールディレクトリ/conf/server.xmlの以下の部分を編集

<!--Connector
port="8080"〜 disableUploadTimeout="true"/-->←この部分をコメントアウト

すぐ下に以下を追加
<Connectorport="8009"
enableLookups="false"redirectPort="8443"protocol="AJP/1.3"/>

以上です。ご参考までに...
しましま
常連さん
会議室デビュー日: 2005/01/08
投稿数: 41
投稿日時: 2006-06-03 15:02
こんばんは。

Tomcat側の設定に、問題はないですか?
本当に8009ポートは開いているでしょうか?
コマンドプロンプトから、netstatコマンドを使うと開いているポートが見えます。
あと、ときどきパーソナル・ファイアーウォールが邪魔をすることがあるので、その辺の設定も確認してみてください。
まじぇ
常連さん
会議室デビュー日: 2006/05/31
投稿数: 22
投稿日時: 2006-06-04 10:36
>ポリンキーさん

apache2.1から(?)mod_jk2ではなくmod_proxyを使用するように推奨されていたので
mod_proxyを使用しようと思いました。
Webの情報を色々調べてみたのですが、まだmod_proxyの情報が少なく困ってしまっていました。
もう数日proxyで頑張って無理ならば、mod_jkに切り替えようと思います。
mod_jkの設定方法を御指南頂き有り難う御座いました。

>しましまさん

Tomcat側はデフォルトのままです。何か設定しなければいけないのでしょうか?
また、netstat -aで確認したところ8080、8009ともにLISTNINGでした。

色々やってみてはいるのですが、何がお気づきの点が御座いましたら
またご返信頂けると幸いです。

しましま
常連さん
会議室デビュー日: 2005/01/08
投稿数: 41
投稿日時: 2006-06-04 11:36
Tomcatはデフィルト設定で問題なかったはずですし、実際にポート8009が開いてるなら大丈夫でしょう。

ところで、エラーの503は、Apacheのものですか? Tomcatのものですか?

ちなみに、僕はmod_rewriteと組み合わせて、

RewriteEngine on
RewriteRule ^/jsp-examples/(.*) ajp://localhost:8009/jsp-examples/$1 [P,L]

このような設定でうまく行ってますよ。
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2006-06-04 12:05
こんにちわ。

私の設定は以下です。これでうまく行ってるんですがどうですか。
# httpd-proxy.confの内容は以下1行のみ

ProxyPass /hoge/ ajp://localhost:8009/hoge/

まじぇ
常連さん
会議室デビュー日: 2006/05/31
投稿数: 22
投稿日時: 2006-06-04 12:52
>しましまさん

503のエラーがどっちから返ってきてるか分からないのですが
内容は「Service Temporarily Unavailable
The server is temporarily unable to service
your request due to maintenance downtime or capacity problems.
Please try again later.」でした。

REWRITEをインクルードして、しましまさんと同様の記述をしたのですが、
localhost//jsp-example/もlocalhost//jsp-example/index.html共に
503が返却されました。

>(株)ぽちさん

ロケーションタグを取ってみたのですが、結果は同じでした・・・

>各位
気になったのでTomcat/logs/catalina.【日付】.logを覗いてみたら

2006/06/04 12:46:45 org.apache.coyote.http11.Http11AprProtocol init
情報: Coyote HTTP/1.1を http-8080 で初期化します
2006/06/04 12:46:45 org.apache.coyote.ajp.AjpAprProtocol init
致命的: Error initializing endpoint
java.lang.Exception: Socket bind failed: [730048] ???A?e?\?P?b?g ?A?h???X???μ??v???g?R???A?l?b?g???[?N ?A?h???X?A?????|?[?g???? 1 ??????g?p??≪??・?B
2006/06/04 12:46:45 org.apache.catalina.startup.Catalina load
<<<省略>>>
致命的: Catalina.start
LifecycleException: プロトコルハンドラの初期化に失敗しました: java.lang.Exception: Socket bind failed: [730048] ???A?e?\?P?b?g ?A?h???X???μ??v???g?R???A?l?b?g???[?N ?A?h???X?A?????|?[?g???? 1 ??????g?p??≪??・?B
<<<省略>>>
2006/06/04 12:46:45 org.apache.catalina.startup.Catalina load
情報: Initialization processed in 703 ms
2006/06/04 12:46:45 org.apache.catalina.core.StandardService start
情報: サービス Catalina を起動します
2006/06/04 12:46:45 org.apache.catalina.core.StandardEngine start
情報: Starting Servlet Engine: Apache Tomcat/5.5.17
2006/06/04 12:46:45 org.apache.catalina.core.StandardHost start
情報: XML検証は無効です
2006/06/04 12:46:46 org.apache.coyote.http11.Http11AprProtocol start
情報: Coyote HTTP/1.1を http-8080 で起動します
2006/06/04 12:46:47 org.apache.coyote.ajp.AjpAprProtocol start
致命的: Error starting endpoint
java.lang.Exception: Socket bind failed: [730048] ???A?e?\?P?b?g ?A?h???X???μ??v???g?R???A?l?b?g???[?N ?A?h???X?A?????|?[?g???? 1 ??????g?p??≪??・?B
2006/06/04 12:46:47 org.apache.catalina.startup.Catalina start
<<<省略>>>
致命的: Catalina.start:
LifecycleException: service.getName(): "Catalina"; プロトコルハンドラの起動に失敗しました: java.lang.Exception: Socket bind failed: [730048] ???A?e?\?P?b?g ?A?h???X???μ??v???g?R???A?l?b?g???[?N ?A?h???X?A?????|?[?g???? 1 ??????g?p??≪??・?B
2006/06/04 12:46:47 org.apache.catalina.startup.Catalina start
<<<省略>>>
情報: Server startup in 1218 ms

とありました。長いのでスタックトレースは省略しました。(tomcatは起動できています)
このエラーが原因なのでしょうか?
tomcat&apache初心者でエラーも読めずに申し訳ないのですが
どうぞ宜しくお願い致します。
初心忘るルべからズ
会議室デビュー日: 2006/06/07
投稿数: 1
投稿日時: 2006-06-07 18:13
私も同じように503のエラーが
返ってきていましたが、その時は
単純にhttpd-proxy.confの
<Location /hoge/>
ProxyPass ajp://localhost:8009/hoge/
</Location>
のポートを間違って8080にてしていた為でした。

もしポートが間違っていなければ
TOMCATのServer.xmlでConnector Port="8009"は
どうなっていますか?

もしかしたらデフォルトから変更していませんか???

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