访问 SSL 时 PHP Curl 会减慢连接速度。如何纠正?

访问 SSL 时 PHP Curl 会减慢连接速度。如何纠正?

迁移到新服务器后,我们的脚本速度急剧下降。

一些故障排除表明,由于服务器尝试加载 SSL 证书,Curl 连接期间发生了速度减慢的情况。无论访问哪个第三方站点或 API,结果都是相同的。

这是在 Amazon EC2 Linux 实例上。证书随服务器一起提供。这些相同的脚本在另一台服务器上运行良好(不再活跃)

但是,现在它会暂停 2-100 秒,然后再在详细输出中显示:

 CAfile: /etc/pki/tls/certs/ca-bundle.crt
 CApath: none
 ALPN/NPN, server did not agree to a protocol

随着发送更多的卷曲请求,速度会逐渐变慢。

然后我添加了curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);问题就消失了!速度恢复正常。

因此,它读取 SSL 证书的方式似乎在尝试协商协议时减慢了速度。

什么会导致这种情况呢?

谢谢

答案1

对你来说可能为时已晚,但我最近遇到了同样的问题。我的php脚本在centos7上运行。

在查看 strace 并继续谷歌搜索后,我发现了导致此行为的问题。

https://bugzilla.redhat.com/show_bug.cgi?id=1659108

解决方案:

我更新了质子交换膜包(1.0.3-5.el7 -> 1.0.3-7.el7)它有助于卷曲。

如果您无法更新软件包并且不想禁用 ssl 证书检查,您可以使用文件获取内容而不是 libcurl。

相关内容