Siege https error: HTTPS requires libssl

Siege https error: HTTPS requires libssl

我无法让 siege 使用 https。 运行 Ubuntu 16.04 LTS 上的 Siege 4.0.2 预装了 OpenSSL 1.0.2g 和 libssl-dev 1.0.2g-1ubuntu4.6。

错误
当我 运行 它时,我得到了很多这样的错误:
[error] HTTPS requires libssl: Unable to reach www.mysite.com with this protocol: Transport endpoint is already connected

还有其中的几个
[error] descriptor table full sock.c:133: Too many open files

然后终于
libgcc_s.so.1 must be installed for pthread_cancel to work
[1] 18421 abort (core dumped) sudo siege -t 5M -d1 -c200 -f urls-f1.txt

我的研究
我在网上找到了几个让围攻与 https 一起工作的答案。例如,this thread on Whosebug 表示 "configure using the --with-ssl option. Additionally, the openssl development headers must be installed"。

也许最好的来源是 the siege package 本身的 INSTALL 文件,它说:
要启用 https,您必须在系统上安装 ssl。得到 来自 http://www.openssl.org 的最新版本。安装 ssl 后, 然后你必须配置围攻才能使用它:

$ ./configure --prefix=/some/dir --with-ssl=/ssl/install/dir

openssl 默认安装是 /usr/local/ssl。如果你安装了 在该目录中打开 openssl,然后您将像这样配置围攻:

$ ./configure --prefix=/some/dir --with-ssl=/usr/local/ssl
$ make
$ make uninstall (if you have a previous version already installed)
$ make install

我尝试了所有这些建议,发现了更多相同的建议。但我仍然坚持上面显示的错误。可能是我遗漏了某些东西或最新的软件或 OS 有问题。下一节将展示我为设置机器所做的工作。

我如何设置机器
我在预装 Ubuntu 16.04.1 的 DigitalOcean 上使用新的 VPS。在设置了一个额外的用户、SSH 访问和防火墙之后,这就是我设置 siege 所做的。

  1. 更新系统
    sudo apt-get update && sudo apt-get upgrade --show-upgraded

  2. 安装 GNU 编译器集合
    sudo apt-get install build-essential

  3. 安装openssl开发头包
    sudo apt-get install libssl-dev

  4. 下载围攻解压
    wget http://download.joedog.org/siege/siege-latest.tar.gz
    tar -zxvf siege-latest.tar.gz

  5. 配置并安装围城
    cd siege-*/
    找到 openssl 所在的位置:
    which openssl 将此信息用于 with-ssl 标志
    ./configure --with-ssl=/usr/bin/openssl
    make
    sudo make install

我的问题
请帮助我使用 https URL 进行围攻。在回答这个问题时,请知道我对 Linux 管理方面的东西还很陌生,因此非常感谢有关操作的详细信息。

在 'make install' 之前执行 'make clean' 以删除在没有 ssl 支持的情况下编译的对象:

  1. cd 攻城-*/
  2. sudo make clean
  3. 须藤安装

原来需要 --prefix 才能 link 在我的系统中启动库。如果您不提供该信息,即使安装似乎工作正常并且没有错误。在提供前缀之前,我将前缀设置为 siege 安装到的目录。所以安装最终在同一个目录中,但现在它可以使用 https。

这对我有用:

$ ./configure --prefix=/usr/local --with-ssl=/usr/bin/openssl
$ make
$ sudo make install

我首先卸载了之前尝试安装的所有内容,然后我简单地使用 Brew 安装了 siege

brew install siege

开箱即用