4

あるマシンで apache を使用して、別のマシンで jboss へのリクエストを処理しています。jboss を起動するとすべて正常に動作し、Web アプリにアクセスできるようになりますが、数時間後に「プロキシ サーバーがアップストリーム サーバーから無効な応答を受け取りました」というエラーが発生し始めます。jboss を再起動すると、すべて正常に動作しますが、数時間後に同じ問題が発生します...

この問題の原因を知っている人はいますか? 現時点では apache ログにアクセスできません (数時間後にアクセスできるはずです) が、再起動は一時的な修正であるため、jboss に問題があるようです。

jboss4.2.3 と apache 1.3 を mod_jk で使用しています。jboss ログにエラーが見つからず、到達しようとしているアプリが長時間かかる処理を行っていません。メインページは単なるログインページです。アプリ サーバーと Web サーバー間の通信用にポート 8009 と 8080 を開いています。どの設定が間違っているのかわかりません。

4

4 に答える 4

6

これは、Apache の mod_jk が JBoss の AJP コネクタと同期していないように思えます。AJP プロトコルは、Web サーバーとアプリ サーバーの間で持続的で再利用される接続を使用します。プロトコルが接続の両端でまったく同じように構成されていない場合、最終的には接続の一方の端で接続が古くなり、もう一方の端で接続が古くなります。それらを使用しようとし続けます。症状は 502 エラーです。

私の最初の提案は次のとおりです。必要でない限り mod_jk を使用しないでください。安定したシステムを構築するための構成は複雑で困難です。そのパフォーマンスまたは負荷分散機能が必要ない場合は、代わりに mod_proxy を使用することをお勧めします。これはほとんどのアプリケーションに適していて、非常に簡単です。

しかし、mod_jk に固執したい場合は、最初に最新の mod_jk バージョン (現在は 1.2.28) を使用していることを確認する必要があります。古いバージョンは構成が難しいことで有名です。幸い、mod_jk は Apache 1.3 でもサポートされています。

次に、mod_jk ログ ファイル (JkLogFile ディレクティブを使用して構成) を確認します。問題が発生したときに接続関連のエラーが多数表示される場合は、接続の両端で jk 構成を微調整する必要があります。最も可能性の高い原因はタイムアウト設定であるため、ここでそれらについて読んで、両端が同じ賛美歌シートから歌っていることを確認してください.

于 2009-07-12T15:05:16.203 に答える
0

私は同じ問題を抱えていましたが、ApacheとGlassfishでした。最後に、両側で同じタイムアウトを構成するように修正できました。

Glassfish ではリスナーの構成を変更し、Apache では次の行で worker.properties を変更します。

worker.worker_name.socket_timeout=300

JBoss でこれを設定する方法がわかりません。web.xmlまたはを変更している可能性がありますcluster-service.xml

于 2013-11-11T13:52:06.593 に答える