繁体   English   中英

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

[英]Issues with PHP cURL between servers, return transfer probably wont catch the response

我的行为很奇怪。

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

1.我的客户得到了一个php代码片段以放入他的网站。

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

3.我的服务器记录数据,并确定风险级别。

4.然后,它向客户端服务器回复状态。 也就是说,它将“ true”或“ false”发送回客户端服务器。

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

由于某种原因,我面临的问题是,从客户端服务器到服务器的所有请求都记录并存储在一个日志文件中,但是我的客户端报告点击丢失,就像服务器返回响应一样,但他们的服务器无法收到这些响应或其他内容。

我可能注意到,每分钟都有来自不同客户端服务器以及每个客户端本人的大量请求。

原因可能与CURL_RETURNTRANSFER没有得到任何响应有关吗? 或者,也许问题是cURL重载?

我真的不知道。 我的服务器运行非常快,并且仅使用其源的10%。

预先感谢您的想法。

您碰到了非常有问题的域-高负载服务器,问题可能出在很多地方,因此您将不得不花费时间来修复它,或者至少要部分修复。

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

  1. 客户端的php代码尝试打开与您服务器的连接,为此,它会通过网络将一些数据发送到您的服务器
  2. 您的服务器(我想是apache)尝试接受它,如果它有资源-请检查apache配置中的最大连接属性
  3. 如果服务器可以接受连接,它将尝试创建新线程(或使用线程池中的一个)
  4. 线程启动后,它将运行您的php脚本
  5. 您的php脚本做了一些工作,连接到数据库并通过网络发送回响应
  6. 客户端等待直到来自p5的答案或由于超时而关闭连接

因此,您可能会遇到瓶颈:

  1. 网络带宽
  2. 最大打开连接数
  3. 线程池大小
  4. 脚本执行时间
  5. 最大数据库连接数,表锁,io等待时间
  6. 客户超时

它不是可能发生问题并最终导致空卷曲响应的可能位置的完整列表。

从一开始,我建议您将日志记录添加到两个PHP代码(客户端和服务器)中,并将所有curl_error问题存储在某个文本文件中,至少您会看到经常发生什么问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM