使用 --ssl 运行 httperf 时,是否有人看到“httperf:连接失败,出现意外错误 0”?
这阻止了我在该域上的测试。当我在https://google.com上测试 --ssl 时,它运行良好。
在我的“有问题”域的另一端有 ELB,将调用转发到 heroku。
在我的工作站上:OSX 10.9.5 和 httperf-0.9.0(通过 brew)
使用 --ssl 运行 httperf 时,是否有人看到“httperf:连接失败,出现意外错误 0”?
这阻止了我在该域上的测试。当我在https://google.com上测试 --ssl 时,它运行良好。
在我的“有问题”域的另一端有 ELB,将调用转发到 heroku。
在我的工作站上:OSX 10.9.5 和 httperf-0.9.0(通过 brew)
我遇到了同样的问题,通过查看 NGINX 日志发现 SSL 握手失败,因为 SSLv3 被禁用服务器端。
该项目似乎有点死,所以我在第 924 行修改了这个文件:
我替换SSLv3_client_method()
为TLSv1_client_method()
然后是通常的编译内容configure-make-install。确保在您的构建机器上有 openssl。
@oto 的答案原来也与我的修复有关。基本上,由于POODLE漏洞,我们停止在我们的服务器上使用 SSLv3(显然,httperf 使用的所有其他 ssl 协议),并且 httperf 使用 SSLv3,因此无法连接。
在他们更新 httperf 之前,似乎没有简单的方法可以解决这个问题。修复它的一种方法是手动从 SSLv3 更改为 TLSv1,如另一个答案中所述。
我在 GitHub 上找到了这个补丁拉取请求。它更改了代码,因此您可以使用标志指定 ssl 协议,因此我可以强制使用 TLSv1 而不是 SSLv3。
对于这两个修复,您都需要下载httperf 源代码,进行更改(如应用补丁),然后编译。我从 GitHub 克隆了源代码,所以我必须在运行autoreconf -i
之前运行命令make
,但说明非常好。我不得不使用commit ed5c631,因为最新的提交似乎被破坏了。