0

IBM HTTP サーバーが「400 Bad Request」エラーを返し、その理由が見つからないという問題に直面しています。

要求は、Tibco SOAP サービスによって処理されることになっている SOAP 要求ですが、要求がアプリケーションに到達していません (アプリケーション ログに同じログがありません) - HTTP サーバー レベルでエラーが発生しています。

使用する HTTP サーバーはプロキシとしてのみ使用され、リクエストをアプリケーションに渡すだけです。

アクセスログから:

10.239.12.250 - - [17/11/2016:10:23:19 +0000] "POST /OnlineCheck HTTP/1.1" 400 - 300 "Java1.7.0_40" 300/300021637

エラーログを確認したところ:

[2016 年 11 月 17 日木曜日 10:28:19] [エラー] (70007) 指定されたタイムアウトが期限切れになりました: プロキシ: プリフェッチ要求の本文が [::1]:9876 (temp.adv.com) から 10.213.123.12 に失敗しました

ログからわかるように、リクエストを取得してから 5 分後にエラーが返されます。

注意すべき点:

エラーは 1 つのクライアントからのみ発生し (複数のクライアントが同じサービスを使用)、ロード バランシングに OSB/Weblogic を使用します。

これは、リクエストの 10 ~ 20% でのみ発生し、ランダムです。ロード バランサーによって再度送信されたときの同じ要求 (2.5 分後に応答が得られない場合、サーバーは適切に応答します)

エラーの原因を把握する方法があるかどうか知りたいですか? 400\Bad Request エラーの考えられる理由は何ですか?

4

1 に答える 1

1

このエラー メッセージは、mod_proxy が POST 本文を待っていて、それがクライアントから送信されなかったことを意味します。そのため、クライアントから送信された Content-Length または Transfer-Encoding: チャンクが無効であり、ステータス コード 400 が返されました。

「mod_net_trace」の LoadModule のコメントを外して、これらのリクエストに対して実行された I/O を記録し、予想されるボディの種類を確認して、それが利用できなかったことを確認できます。

送信された内容の内部ビューが信頼できない場合は、パケット キャプチャを使用して同じことを確認できます。

于 2016-12-01T14:53:22.427 に答える