什么原因导致我的 PHP curl 请求超时?

什么原因导致我的 PHP curl 请求超时?

所以我有一个 PHP 脚本,它将一个大文件发布到远程 API。但每当响应需要超过 200 秒的时间时,我就会得到响应中的内容长度为零。在我们将服务器移至新的托管服务提供商之前,这种情况从未发生过,所以我认为问题与 Apache 或 PHP 配置有关。我尝试将我们的 PHP 和 Apache 配置中的每个变量设置为超过 180 秒的时间段,但这种情况仍然不断发生。

我打开了 Apache 日志中的调试功能,看到的是:

* About to connect() to xml.myservice.com port 443 (#0)
*   Trying 555.555.555.555... * connected
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSL connection using RC4-SHA
* Server certificate:
*        subject: C=US; ST=MyState; L=MyCity; O=My Service Corporation; CN=xml.myservice.com
*        start date: 2014-02-13 18:26:02 GMT
*        expire date: 2015-03-25 23:59:58 GMT
*        subjectAltName: xml.myservice.com matched
*        issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign Organization Validation CA - G2
*        SSL certificate verify ok.
> POST /xmlservlet HTTP/1.1^M
Host: xml.myservice.com^M
> POST /xmlservlet HTTP/1.1^M
Host: xml.myservice.com^M
Accept: */*^M
Content-Type: text/xml^M
Content-Length: 10773^M
Expect: 100-continue^M
^M
< HTTP/1.1 100 Continue^M
< HTTP/1.1 200 OK^M
< Cache-Control: private^M
< Content-Type: text/xml^M
< Server: Microsoft-IIS/7.5^M
< X-AspNet-Version: 4.0.30319^M
< X-Powered-By: ASP.NET^M
< Date: Mon, 29 Sep 2014 21:03:26 GMT^M
< Content-Length: 0^M
< ^M

(供参考,此连接尝试于 21:00:05 开始)

我强烈怀疑问题在于我发出请求的目标服务器偶尔需要超过 200 秒才能响应(通常平均需要 170-190 秒左右),而我自己的服务器过早地超时请求并在这些情况下向 PHP 返回零内容长度。

有什么建议可以帮我解决 Apache 或 PHP 配置文件中的问题吗?我想知道在哪里可以延长服务器等待响应的时间。我希望它等待响应的时间加倍。

谢谢!

相关内容