我无法让围攻与 https 一起工作。在预装 OpenSSL 1.0.2g 和 libssl-dev 1.0.2g-1ubuntu4.6 的 Ubuntu 16.04 LTS 上运行 Siege 4.0.2。
错误
当我运行它时,我得到了很多这样的错误:
[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
我的研究
我在网上找到了一些关于让 siege 使用 https 的答案。例如,stackoverflow上的这个线程说“使用 --with-ssl 选项进行配置。此外,必须安装 openssl 开发头文件”。
也许最好的来源是siege 包本身的 INSTALL 文件,它说:
要启用 https,您必须在系统上安装 ssl。从http://www.openssl.org获取最新版本。安装 ssl 后,您必须配置 siege 才能使用它:
$ ./configure --prefix=/some/dir --with-ssl=/ssl/install/dir
openssl 默认安装是 /usr/local/ssl。如果您在该目录中安装了 openssl,那么您将像这样配置 siege:
$ ./configure --prefix=/some/dir --with-ssl=/usr/local/ssl
$ make
$ make uninstall (if you have a previous version already installed)
$ make install
我尝试了所有这些建议,并发现了更多相同的建议。但我仍然坚持上面显示的错误。也许我错过了什么,或者最新的软件或操作系统有问题。下一部分显示了我为设置机器所做的工作。
我如何设置机器
我在 DigitalOcean 上使用新的 VPS 并预装了 Ubuntu 16.04.1。在设置了一个额外的用户、SSH 访问和防火墙之后,这就是我设置 siege 所做的。
更新系统
sudo apt-get update && sudo apt-get upgrade --show-upgraded
安装 GNU 编译器集合
sudo apt-get install build-essential
安装 openssl 开发头文件包
sudo apt-get install libssl-dev
下载围攻并解压
wget http://download.joedog.org/siege/siege-latest.tar.gz
tar -zxvf siege-latest.tar.gz
配置和安装 siege
cd siege-*/
找到 openssl 所在的位置:
which openssl
将此信息用于 with-ssl 标志
./configure --with-ssl=/usr/bin/openssl
make
sudo make install
我的问题
请帮助我使用 https URL 进行围攻。在回答这个问题时,请知道我对 Linux 管理员的东西还很陌生,因此非常感谢您详细说明该做什么。