url 请求中止 http 流量 apache

url 请求中止 http 流量 apache

在此处输入图片描述我的 extjs php 应用程序出了问题。我们有两台服务器,其中有一个以循环方式工作的负载平衡 (NLB)。在使用系统时,用户遇到了一些问题,例如数据无法从数据库加载,并且 http 请求被中止。我实际上不知道从哪里开始进行故障排除。

在网站的任何特定页面上,当您打开页面时,许多资产(用户信息、下拉菜单、整个页面等)都无法加载。如果您刷新,页面可能工作正常,但同一组资产可能无法加载,或者不同的资产可能无法加载。

Apache 日志中没有任何关于失败请求的信息,但是由于它似乎指向 Apache 问题,我们重新启动了 Apache。第一次尝试时,没有任何变化,但大约 10 分钟后,由于没有更好的解决方案,我们再次尝试。奇怪的是,问题立即消失了。1-2 天后再次出现。

我还将 php 进程设置为多个,以便不同的请求获取不同的 php 文件,但看起来问题并不存在。

答案1

问题描述非常笼统,但您可以尝试以下几种方法来确定问题的原因:

  • 使用 Chrome (F12)、FireFox 中的 FireBug 或类似工具检查所有应用程序的 HTTP 返回代码。您遇到的此类错误以及相关资源应该会为您指明正确的方向。
  • 设置错误报告在测试时将 PHP 中的 E_ALL 设置为 E_ALL,然后重新检查 Apache 日志。
  • 检查所有日志中是否存在相关错误和警告(系统、数据库、安全等)。
  • 绕过负载均衡器并直接访问服务器。
  • 在您的应用程序中添加手动日志输出,以缩小有效和无效的范围。

如果问题是间歇性的,您需要找到一种方法来重现该问题。尝试使用 ApacheBench 或类似程序进行负载测试。一旦您可以定期重现它,那么只需集中精力找出它发生的位置和原因即可。

编辑:

从您的图片来看,我猜测应用程序崩溃了,可能是以某种方式阻止了错误消息的输出(假设仍然没有错误消息)。如果总是那个应用程序崩溃,您可以将调查限制在该应用程序上。是特定输入导致它崩溃,是基于负载的,还是似乎是随机的,等等……?您还可以暂时添加手动错误日志()向应用程序发送消息来缩小崩溃的范围。

相关内容