使用Apache和HAProxy诊断HTTP 500错误

使用Apache和HAProxy诊断HTTP 500错误,apache,http,asynchronous,svn,haproxy,Apache,Http,Asynchronous,Svn,Haproxy,我正在开发的一个应用程序遇到了一个问题,这让我完全难堪。该程序是一个iOS应用程序,需要能够从SVN服务器异步下载图像。用户一直在报告丢失的图像,当我深入研究代码时,我注意到一些下载正在超时。我尝试增加请求的超时时间,并添加代码以在失败时重试,但没有成功 查看web服务器的apache访问日志,我注意到一些下载请求由于“500”错误而失败。问题是,我实际上没有在顶级apache错误日志或该站点的apache错误日志中看到这些错误的任何详细信息。我能找到的大部分信息都是针对php有问题的人的,但我

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

查看web服务器的apache访问日志,我注意到一些下载请求由于“500”错误而失败。问题是,我实际上没有在顶级apache错误日志或该站点的apache错误日志中看到这些错误的任何详细信息。我能找到的大部分信息都是针对php有问题的人的,但我已经排除了这种可能性。php的错误日志已启用,我在这些日志中没有看到任何内容

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

有人能解释一下吗?丢失的图像是我的用户的一个主要问题,我不知道还能看到什么

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

apache访问日志

"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"
haproxy日志:

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服务器发送了太多的请求,导致服务器阻塞(有关更多详细信息,请参阅)。也就是说,我从来没有弄清楚如何实际查找任何相关日志,所以我现在将此保留为打开状态。

您已经查看了日志,但您是否尝试自己复制这些错误?如果可以复制错误,则可以开始测试,例如,服务器与代理分开。不幸的是,这是一台生产服务器,因此我不能直接关闭代理。不必关闭代理。只需直接或使用另一个不同配置的代理,将后端与代理分开进行测试。您能提供一些我将如何进行测试的示例吗?请记住,没有我可以直接测试的“后端”,只有一个svn服务器,我正在对其发出GET请求。svn服务器是备份的。您可以使用curl从代理服务器复制这些查询吗?你能在一个相似的地方做另一个代理并通过它进行查询吗?“privoxy”是一种快速、简单的安装和配置。