cURL代理在初始请求时挂起30秒

时间:2017-03-08 10:06:23

标签: php ajax curl iis proxy

首先,我将尝试解释我尝试调试的设置是如何工作的。

  • 首先,从客户端(JavaScript)发出XHR / Ajax请求。
  • 此请求被发送到Windows / Apache / PHP服务器
  • 此服务器充当代理,它接受请求,处理数据并将其代理到另一台服务器上,使用cURL
  • 将cURL请求发送到接受数据的Windows IIS服务器,并将一些值返回给PHP代理服务器
  • PHP代理服务器对值进行一些操作,然后将它们返回给客户端(JavaScript)

其他一些信息:

  • 此PHP cURL代理的目的是它是一个单点登录身份验证API。
  • 这个过程很受这个答案的启发:How youtube gets logged in to gmail account without redirect?
  • PHP cURL代理充当存储身份验证令牌的单点登录API。
  • Windows IIS服务器是用户名/密码发送到的地方,可能会返回身份验证令牌。

问题:

在初始请求中,有一个30秒的等待时间,直到返回响应,这几乎就像服务器睡着了,需要醒来。初始请求成功获得响应后,将在不到1秒的时间内返回后续请求。如果没有对时间空间(例如30分钟)提出请求,则会再次发生缓慢的初始请求。

对PHP Auth API的直接请求永远不会有这么久的等待,对于Windows IIS端点也是如此 - 但是当两者之间存在cURL时,就会发生漫长的等待。

有人能指出我在正确的方向吗?也许它显而易见,我还没有考虑过?将"保持连接活着"类型参数有帮助吗?

我希望我已经正确解释了问题,如果需要更多信息,请问。

谢谢Stack Overflow!

enter image description here

1 个答案:

答案 0 :(得分:1)

您是否认为这是您调用API的“第一次”,API本身可能刚刚入睡, 它自己的初始化有启动步骤,需要一点时间才能运行。