使用 Apache 和 HAProxy 诊断 HTTP 500 错误



我正在处理的应用程序遇到了一个问题,这让我完全被难住了。该程序是一个iOS应用程序,需要能够从SVN服务器异步下载图像。用户一直在报告丢失的图像,当我深入研究代码时,我注意到某些下载超时。我尝试增加请求的超时,并添加代码以在失败时重试,但没有成功。

查看 Web 服务器的 apache 访问日志,我注意到某些下载请求失败并出现"500"错误。问题是,我实际上没有在顶级 apache 错误日志或该站点的 apache 错误日志中看到这些错误的任何详细信息。我能找到的大部分信息都是针对那些在使用 php 时遇到问题的人,但我已经消除了这种可能性。php 的错误日志记录已启用,我在这些日志中看不到任何内容。

我的另一个想法是,这可能是将请求定向到我的 Web 服务器的代理服务器(haproxy(的问题,但这似乎也正常工作。如果我查看 haproxy 日志中失败请求的行,它显示状态为"200"。

谁能对此有所了解?丢失的图像对我的用户来说是一个主要问题,我不知道还能看什么。

更新:我想我可以排除代理服务器作为原因。我修改了代码以通过 IP 地址直接指向 svn 服务器,结果是相同的。

阿帕奇访问日志

"GET /svn/mysite/33245/img/13301.jpg HTTP/1.1" 500 500 1 251118 "-" "MyApp/1.1.57 CFNetwork/758.5.3 Darwin/15.6.0"

ha代理日志:

http-in backend_www_static/web01 21/0/1/3/1746 200 96024 - - CD-- 3/3/1/1/0 0/0 "GET /svn/mysite/33245/img/13301.jpg HTTP/1.1"

我最终发现问题的根源实际上在客户端。我同时向Web服务器发送了太多请求,它令人窒息(有关更多详细信息,请参阅:从Objective-C中的异步块递增变量(。也就是说,我从来没有弄清楚如何实际找到任何相关的日志,所以我暂时将其保留为开放状态。

最新更新