【发布时间】:2014-12-01 16:00:50
【问题描述】:
有没有人在使用 --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 行修改了this file:
我用TLSv1_client_method()替换了SSLv3_client_method()
然后是通常的编译东西configure-make-install。确保您的构建机器上有 openssl。
【讨论】:
@oto 的答案原来也与我的修复有关。基本上,由于POODLE 漏洞,我们停止在我们的服务器上使用 SSLv3(显然,httperf 使用的所有其他 ssl 协议),并且 httperf 使用 SSLv3,因此无法连接。
在他们更新 httperf 之前,似乎没有简单的方法可以解决这个问题。解决它的一种方法是手动从 SSLv3 更改为 TLSv1,如另一个答案中所述。
我在 GitHub 上找到了this patch pull-request。它更改了代码,因此您可以使用标志指定 ssl 协议,因此我可以强制使用 TLSv1 而不是 SSLv3。
对于这两个修复,您需要下载httperf source code,进行更改(如应用patch),然后编译。我从 GitHub 克隆了源代码,所以在运行 make 之前必须运行 autoreconf -i 命令,但 the instructions 相当不错。我不得不使用 commit ed5c631,因为最近的提交似乎被破坏了。
【讨论】: