PHP CURL超时,无论设置多长时间都会超时

4
我正在使用php编写一个小型程序,利用curl登录并从服务中下载一些报告。在程序获取报告时遇到问题,出现了下面的超时消息。你有什么想法或建议吗?我最开始连接的服务器是MS IIS服务器,然后跳转到AkamaiGHost服务器进行报告下载。
以下是我使用的curl setopts:
curl_setopt($ch, CURLOPT_USERAGENT,$user_agent);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);
curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie_file);
curl_setopt($ch,CURLOPT_CERTINFO,true);
curl_setopt($ch,CURLOPT_HEADER,true);
curl_setopt($ch,CURLOPT_HTTPAUTH,CURLAUTH_ANY);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,true);
curl_setopt ($ch, CURLOPT_CAINFO,'cacert.pem');


Report Response:
HTTP/1.1 100 Continue

HTTP/1.1 504 Gateway Time-out
Server: AkamaiGHost
Mime-Version: 1.0
Content-Type: text/html
Content-Length: 250
Expires: Fri, 05 Jul 2013 19:14:43 GMT
Date: Fri, 05 Jul 2013 19:14:43 GMT
Connection: close

<HTML><HEAD>
<TITLE>Gateway Timeout - In read </TITLE>
</HEAD><BODY>
<H1>Gateway Timeout</H1>
The proxy server did not receive a timely response from the upstream server.<P>
Reference&#32;&#35;1&#46;ed690317&#46;1373051683&#46;bb2c2f0
</BODY></HTML>

你可以发布你的CURL请求,但是请问你是否已经适当地存储了下一次请求所需的cookies/auth信息? - Rob W
你需要找出为什么Akamai的代理无法访问你正在尝试连接的服务器。 - Marc B
在浏览器内部,调用几乎瞬间完成...但在curl内部则会超时。Cookie和身份验证不是问题,我登录后获取另一个页面,然后再获取另一个页面。 - Andrew
你的本地机器上的浏览器直接连接目标,而不是通过Akamai工作吗? - Saintt Sheldon Patnett
1个回答

0

我怀疑您的IIS服务器(或运行脚本的服务器)无法路由到AkamaiGHost服务器 - 这可能是防火墙问题、DNS问题或其他连接问题(也许AkamaiGHost未设置为从您的服务器接收请求?)。

您应该检查服务器上是否可以进行出站请求。

尝试登录运行脚本的服务器,并ping一下AkamaiGHost服务器 - 如果成功,请尝试使用命令行curl(非SSL)- 如果成功,则您的问题很可能是由于某些干扰SSL端口(443)的出站连接引起的,例如您的防火墙。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接