web-dev-qa-db-ja.com

断続的なApache 400 Bad Requestエラーのトラブルシューティング

アプリの問題をデバッグして、提案やトラブルシューティングのヒントを探しています。

私のアプリは、HTTPS経由でApacheにデータを送信するモバイルアプリで構成されています(mod_proxyを使用してDjangoサーバーに転送しています)。ただし、Djangoレイヤーであり、400がApacheから直接送信されており、まったく転送されていないことを示しているようです。

また、これはPOSTのごく一部のサブセットでのみ発生します。問題の頻度の低さと、私がアクセスできない電話からの問題が原因で、再現とデバッグが困難でした。

これをトラブルシューティングするために私はどのような種類の物を見なければなりませんか?私は この投稿 を見つけましたが、私はすでにApache 2.2.22を使用しているので、それは問題ではないようです。

リクエストの量が多いため、すべてのリクエストに完全なロギングを追加するのをためらっています(ただし、条件付きロギングを行うことはできますか?)。

提案を探しています:

  • 根本的な問題は何でしょうか。例えば。このような断続的な400が発生する問題の種類
  • クライアントデータにアクセスできない場合、診断に役立つサーバー側の詳細情報を取得する方法。
2
Cory

RFC2616から、 400は悪い要求です

不正な構文のため、サーバーはリクエストを理解できませんでした。クライアントは変更なしでリクエストを繰り返すべきではありません。

つまり、リクエストが400を引き起こしているということです。

  • apacheエラーログを調べます。 ログレベルwarn(デフォルト)からdebugに増やし、エラーログを調べることもできます。
  • そのような要求のtcpdumpを調べてください(多くのチュートリアルがWebで入手可能です)。これは根本的な原因を見つけるための最良のオプションとなる可能性があります。

こちらが IISでの400エラーのトラブルシューティングに関するブログ投稿 でもあります。

3
KM.