我是一名 PHP 开发人员,我花了大量时间试图找出我们 Web 应用程序用户报告的一个非常奇怪的问题。结果发现,由于互联网上的 API 调用速度慢(通过 PHP 使用 cURL),Apache 超时了。我检查了 httpd.conf,发现 TimeOut 指令设置为 12。出于测试目的,我将其增加到 120,问题就解决了!
当发生超时时,用户的浏览器将显示类似于“服务器断开连接”的错误。错误消息会根据使用的浏览器而变化,而 cURL 只会说服务器的响应为空。这种行为似乎很有道理,但令我烦恼的是,Apache 没有记录这些超时或报告任何错误。相反,它只是关闭,让我们对发生的事情感到困惑,直到我们猜测是超时。
是否有记录超时的选项或某种方式可以监控超时?
答案1
它可能返回了 504 状态代码,浏览器将其解释为上述错误消息。请检查日志以查找该响应代码。
答案2
我还会验证 CURLOPT_TIMEOUT 是否足够高,以允许您尝试执行的操作。
答案3
如果您想监控您的 apache,请查看这个小脚本。在写入日志时,随意添加一些有用的调用,如 pa -A,以便您能够更清楚地了解情况。 http://www.triologic.eu/apache-monitor.0.html?&L=1
triologic.eu 网络团队