我正在遇到一个我正在研究的应用程序的问题,这让我完全陷入困境。该程序是一个iOS应用程序,需要能够从SVN服务器异步下载图像。用户一直在报告丢失的图像,当我挖掘代码时,我注意到一些下载是超时的。我尝试增加请求的超时并添加代码以在失败时重试但没有成功。
查看Web服务器的apache访问日志,我注意到一些下载请求失败并出现“500”错误。问题是,我实际上没有看到在顶级apache错误日志或该站点的apache错误日志中记录这些错误的任何详细信息。我能找到的大多数信息都是针对有问题的人,但我已经将其作为一种可能性消除了。 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"
我最终发现问题的根源实际上是在客户端。我同时向网络服务器发送了太多请求,而且它很窒息(请参阅:Incrementing a Variable from an Asynchronous Block in Objective-C了解更多详情)。也就是说,我从来没有弄清楚如何实际找到任何相关的日志,所以我现在就把它打开。