服务器之间的PHP cURL问题,返回传输可能无法捕获响应

服务器之间的PHP cURL问题,返回传输可能无法捕获响应,php,curl,overloading,Php,Curl,Overloading,我有一种非常奇怪的行为 我正在为用户托管一个跟踪软件,主要记录移动流量。现在,路径如下: 1.我的客户得到一段php代码片段,放在他的网站上 2.此代码向我的服务器发送一个cURL post(基于预定义的post字段,如:visiotr IP、useragent、host等) 3.我的服务器记录数据,并决定风险等级 4。然后它会向客户机服务器响应状态。也就是说,它将“true”或“false”发送回客户机服务器 5。客户机服务器获得该r 响应,并决定要做什么(加载不同的HTML内容、重定向、阻止

我有一种非常奇怪的行为

我正在为用户托管一个跟踪软件,主要记录移动流量。现在,路径如下:

1.我的客户得到一段php代码片段,放在他的网站上

2.此代码向我的服务器发送一个cURL post(基于预定义的post字段,如:visiotr IP、useragent、host等)

3.我的服务器记录数据,并决定风险等级

4。然后它会向客户机服务器响应状态。也就是说,它将“true”或“false”发送回客户机服务器

5。客户机服务器获得该r 响应,并决定要做什么(加载不同的HTML内容、重定向、阻止访问者等)

我面临的问题是,出于某种原因,从我的客户机服务器向我的服务器发出的所有请求都被记录并存储在日志文件中,但我的客户机报告单击丢失,就好像我的服务器发回响应一样,但他们的服务器没有收到这些响应或其他什么

我可能会注意到,每分钟都有大量来自不同客户机服务器和每个客户机本身的请求

原因可能与CURL\u RETURNTRANSFER没有得到任何响应有关吗?或者,问题可能是CURL过载

我真的不知道。我的服务器速度很快,只使用了10%的资源


提前感谢您的想法。

您接触了非常有问题的域-高负载服务器,您的问题可能存在于很多地方,因此您必须真正花时间来修复它,或者至少部分修复

首先,您应该了解实际情况,查看以下简化方案:

  • 客户端的php代码试图打开到服务器的连接,为此,它会通过网络向服务器发送一些数据
  • 如果服务器有资源,您的服务器(我想apache)会尝试接受它-请检查apache配置中的max connections属性
  • 若服务器可以接受连接,它将尝试创建新线程(或使用线程池中的线程)
  • 线程启动后,它将运行php脚本
  • 您的php脚本做了一些工作,连接到db并通过网络发送响应
  • 客户端等待来自p5的应答,或者由于超时而关闭连接
  • 因此,在每一点上,您都可能遇到瓶颈:

  • 网络带宽
  • 最大打开连接数
  • 线程池大小
  • 脚本执行时间
  • 最大数据库连接数、表锁数、io等待时间
  • 客户端超时
  • 而且,这并不是一个可能出现问题并最终导致空卷曲响应的完整列表


    从一开始,我建议您在PHP代码(客户端和服务器)中添加日志记录,并将所有curl_错误问题存储在一些文本文件中,至少您会看到经常出现的问题。

    感谢您的回答和详细方案。我也将开始记录信息