解决间歇性 Apache 400 Bad Request 错误

解决间歇性 Apache 400 Bad Request 错误

我正在尝试调试应用程序中的问题并寻找建议或故障排除提示。

我的应用程序由一个移动应用程序组成,该应用程序通过 HTTPS 向 apache 提交数据(使用 mod_proxy 转发到 django 服务器)。但是,我在 django 层添加了日志记录,它似乎表明 400 直接来自 Apache,根本没有被转发。

此外,这种情况只发生在一小部分 POST 中。由于问题发生的频率很低,而且它来自我无法访问的手机,因此很难重现和调试。

我应该查看哪些类型的内容来解决这个问题?我发现这个帖子但我已经使用 Apache 2.2.22,所以这似乎不是问题。

由于请求量很大,我犹豫是否要为每个请求添加完整日志记录(尽管我可以做一些条件日志记录?)。

寻求以下方面的建议:

  • 根本问题可能是什么。例如,哪些类型的问题会导致间歇性出现 400 错误
  • 由于我无法访问客户端数据,如何在服务器端获取更多信息来帮助诊断。

答案1

来自 RFC2616,400 是错误请求

由于语法错误,服务器无法理解请求。客户端不应在未做任何修改的情况下重复该请求。

因此,该请求存在一些问题,导致了 400 错误。您可以尝试以下操作:

  • 检查你的 Apache 错误日志;你也可以增加日志级别warn(默认)到debug,然后检查错误日志
  • 检查此类请求的 tcpdump(网上有很多教程)——这可能是找到根本原因的最佳选择。

这里有一个关于解决 IIS 上的 400 错误问题的博客文章这也许也会有帮助。

相关内容