加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

cURL/PHP请求执行50%的时间

发布时间:2020-12-14 01:55:04 所属栏目:Linux 来源:网络整理
导读:在全部搜索之后,我无法理解为什么发给启用远程SSL的主机的cURL请求仅在我的情况下成功的时间的50%左右.下面是这样的情况:我有一系列cURL请求,所有这些请求都发布到HTTPS远程主机,在我使用 PHP CLI运行的单个 PHP脚本中.有时,当我运行脚本时,请求会成功执行
在全部搜索之后,我无法理解为什么发给启用远程SSL的主机的cURL请求仅在我的情况下成功的时间的50%左右.下面是这样的情况:我有一系列cURL请求,所有这些请求都发布到HTTPS远程主机,在我使用 PHP CLI运行的单个 PHP脚本中.有时,当我运行脚本时,请求会成功执行,但由于某些原因我运行它的大部分时间,我从cURL得到以下错误:

* About to connect() to www.virginia.edu port 443 (#0)
*   Trying 128.143.22.36... * connected
* Connected to www.virginia.edu (128.143.22.36) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* error:140943FC:SSL routines:SSL3_READ_BYTES:sslv3 alert bad record mac
* Closing connection #0

如果我再次尝试几次,我会得到相同的结果,但经过几次尝试后,请求将成功完成.之后再运行脚本会导致错误,并且模式会继续.研究错误’alert bad record mac’并没有给我带来任何帮助,而且由于脚本偶尔会运行,我在SSL问题上犹豫不决.

我在Ubuntu Server 10.04上安装了php5和php5-curl,以及最新版本的openssl.就cURL特定选项而言,CURLOPT_SSL_VERIFYPEER设置为false,并且CURLOPT_TIMEOUT和CURLOPT_CONNECTTIMEOUT都设置为4秒.进一步说明这个问题的事实是我的Mac OS X开发机器上出现了同样的情况 – 请求只能通过~50%的时间.

解决方法

远程主机可能不是真正独特的主机.也许它是某种负载平衡解决方案,有几台服务器接收传入的请求.
是什么让我觉得可能是错误信息中的’mac error’.这可能意味着远程主机mac地址在SSL否定仍在运行时已更改.这可以解释有时你没有任何问题.

但也许不是:-) SSL问题很难找到.

我不明白你对prefork MPM vs Worker MPM的回答,如果你在cli模式下运行PHP,你的apache MPM没有被使用,你甚至不使用apache.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读