web-dev-qa-db-ja.com

プロキシエラー502:プロキシサーバーがアップストリームサーバーから無効な応答を受信しました

Javaで大量メール送信アプリケーションを構築しています。メールはサードパーティのSMTPで送信されています。 400〜500通のメールを送信した後、Tomcat6サービスは停止します。以下はエラーです。

プロキシエラープロキシサーバーは、アップストリームサーバーから無効な応答を受信しました。プロキシサーバーは、GET /lin/Campaignn.jspのリクエストを処理できませんでした。理由:リモートサーバーからの読み取りエラー

さらに、ErrorDocumentを使用して要求を処理しようとしたときに、502 Bad Gatewayエラーが発生しました。

Msizzler.comポート80のApacheサーバー

しかし、ローカルホストから送信しているとき、エラーは受信しませんでした。すべてのメールを送信します。この問題を解決するのを手伝ってください。

46
Ranjeet Ranjan

HTTP 502 "Bad Gateway"応答は、Apache Webサーバーがアップストリームサーバー(この場合はTomcat Webアプリケーション)から有効なHTTP応答を受信しない場合に生成されます。

これが起こるかもしれないいくつかの理由:

  • Tomcatがクラッシュした可能性があります
  • Webアプリケーションが時間内に応答せず、Apacheからの要求がタイムアウトした
  • Tomcatスレッドがタイムアウトしている
  • ネットワークデバイスが要求をブロックしている、おそらく何らかの接続タイムアウトまたはDoS攻撃防止システムとして

問題がタイムアウト設定に関連している場合、以下を調査することで解決できる場合があります。

  • ProxyTimeout Apacheのmod_proxyのディレクティブ
  • コネクタ Apache Tomcatの構成
  • ネットワークデバイスのマニュアル
44
rmeakins

これをhttpd.confファイルに追加します

Timeout 2400
ProxyTimeout 2400
ProxyBadHeader Ignore 
31
Albert Maclang

Javaアプリケーションは応答に時間がかかりすぎるため(スタートアップ/ jvmがコールドである可能性があります)、プロキシエラーが発生します。

Proxy Error

The proxy server received an invalid response from an upstream server.
 The proxy server could not handle the request GET /lin/Campaignn.jsp.

アルバート・マクランが言ったように、httpタイムアウト構成を修正すると問題が解決する可能性があります。 Javaアプリケーションが500+エラーをスローするため、Apacheゲートウェイエラーも発生すると考えられます。ログを調べる必要があります。

4
Anthony Hunt

この問題は一度ありました。データベースクエリの問題であることが判明しました。テーブルとインデックスを再作成した後、修正されました。

プロキシエラーと表示されますが、サーバーログを見ると、クエリの実行タイムアウトが表示されます。これは私が以前持っていたものであり、どのように解決したかです。

1
CincyBella