我无法让siege使用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
我的研究
我在网上找到了几个答案,可以让围攻与https一起工作。例如,this thread on stackoverflow表示“使用--with-ssl选项进行配置。此外,必须安装openssl开发标题”。
也许最好的来源是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
我尝试了所有这些建议,并发现了更多相同的建议。但我仍然坚持上面显示的错误。也许我错过了一些东西,或者最新的软件或操作系统有问题。下一节将介绍我为设置机器所做的工作。
我如何设置机器
我在DigitalOcean上使用了一个新的VPS,预装了Ubuntu 16.04.1。在设置了额外的用户,SSH访问和防火墙之后,这就是我设置围攻的方法。
更新系统
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
配置并安装围攻
cd siege-*/
找到openssl所在的位置:
which openssl
将此信息用于with-ssl标志
./configure --with-ssl=/usr/bin/openssl
make
sudo make install
我的问题
请帮助我解决使用https网址的问题。在回答这个问题时,请知道我对Linux管理员的新手很陌生,所以非常感谢有关该做什么的详细信息。
答案 0 :(得分:7)
原来需要--prefix
来连接我系统中的库。即使安装似乎工作正常,如果你不提供该信息也没有错误。在我提供前缀之前,我将前缀设置为siege正在安装的目录。因此,安装最终会在同一目录中,但现在可以使用https。
这对我有用:
$ ./configure --prefix=/usr/local --with-ssl=/usr/bin/openssl
$ make
$ sudo make install
答案 1 :(得分:4)
做一个'干净'之前' make install'删除没有ssl支持编译的对象: