我使用的是CentOS 6.4的Siege 3.0.3。
我的问题是:'Siege'如何支持HTTPS协议?
到目前为止,使用此工具进行HTTP站点测试是可以的。
但是,我在处理HTTPS网站时遇到了某些问题(所有这些都在下面描述)。
根据某人的建议,为了使HTTPS工作,我已经用openssl编译了围攻。
为此,我按照以下网站中提到的程序进行操作。 http://drewsymo.com/how-to/installing-siege-stress-tester-on-centos-6-3/
简而言之,我运行了以下命令,用于使用openssl编译siege。
cd /opt
wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
tar -zxvf openssl-1.0.1e.tar.gz
cd siege-3.0.3
./configure -with-ssl=/opt/openssl-1.0.1e
make && make install
我在上述步骤中没有收到任何警告或错误。
但是,即便在此之后,我在使用此工具处理HTTPs站点时获得了以下结果。
ISSUE#1
每当我设置1000,1000等多次点击时,我都会收到以下错误。
"Segmentation fault (core dumped)"
请注意我已经运行了“ulimit -n 10000”命令来增加打开文件的数量。
但是,这没有帮助。
ISSUE#2
[root@localhost ~]# siege --user-agent="Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0" -c10 -r1 -t50S someHTTPSdomain.com
[error] CONFIG conflict: selected time and repetition based testing: No such file or directory
defaulting to time-based testing: 50 seconds
** SIEGE 3.0.3
** Preparing 10 concurrent users for battle.
The server is now under siege...
HTTP/1.1 302 0.09 secs: 0 bytes ==> GET /
HTTP/1.1 302 0.11 secs: 0 bytes ==> GET /
HTTP/1.1 302 0.08 secs: 0 bytes ==> GET /
HTTP/1.1 302 3.09 secs: 0 bytes ==> GET /
.....................
.....................
.....................
Then after many such hits exceeding the above defined 10 hits, I had to press Ctrl+C.
After that, it shows,
^C
Lifting the server siege... done.
Transactions: 0 hits
Availability: 0.00 %
Elapsed time: 18.70 secs
Data transferred: 0.00 MB
Response time: 0.00 secs
Transaction rate: 0.00 trans/sec
Throughput: 0.00 MB/sec
Concurrency: 3.19
Successful transactions: 30
Failed transactions: 28
Longest transaction: 12.10
Shortest transaction: 0.07
FILE: /usr/local/var/siege.log
You can disable this annoying message by editing
the .siegerc file in your home directory; change
the directive 'show-logfile' to false.
[root@localhost ~]#
为什么在HTTPS站点的情况下,事务总是显示0次点击?
即使在指定“-c10 -r1”之后,为什么滚动输出没有为HTTPS站点停止?
此外,为什么所有HTTP响应都显示为HTTPS网站的30倍?
为什么会出现这个错误“[错误] CONFIG冲突:选择的时间和基于重复的测试:没有这样的文件或目录默认为基于时间的测试:50秒”继续显示?
无论如何,如果我从上面的命令中删除-t50S我没有收到错误“[错误] CONFIG冲突:选择的时间和基于重复的测试:没有这样的文件或目录默认为基于时间的测试:50秒”
但是,它仍然将交易显示为0次点击。见下文。
[root@localhost ~]# siege --user-agent="Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0" -c10 -r1 someHTTPSdomain.com
** SIEGE 3.0.3
** Preparing 10 concurrent users for battle.
The server is now under siege...
HTTP/1.1 302 0.08 secs: 0 bytes ==> GET /
HTTP/1.1 302 0.08 secs: 0 bytes ==> GET /
HTTP/1.1 302 0.09 secs: 0 bytes ==> GET /
HTTP/1.1 302 0.11 secs: 0 bytes ==> GET /
HTTP/1.1 302 0.07 secs: 0 bytes ==> GET /
HTTP/1.1 302 0.09 secs: 0 bytes ==> GET /
HTTP/1.1 302 0.08 secs: 0 bytes ==> GET /
HTTP/1.1 302 0.08 secs: 0 bytes ==> GET /
HTTP/1.1 302 0.08 secs: 0 bytes ==> GET /
HTTP/1.1 302 0.10 secs: 0 bytes ==> GET /
done.
Transactions: 0 hits
Availability: 0.00 %
Elapsed time: 2.14 secs
Data transferred: 0.00 MB
Response time: 0.00 secs
Transaction rate: 0.00 trans/sec
Throughput: 0.00 MB/sec
Concurrency: 0.40
Successful transactions: 10
Failed transactions: 10
Longest transaction: 0.11
Shortest transaction: 0.07
FILE: /usr/local/var/siege.log
You can disable this annoying message by editing
the .siegerc file in your home directory; change
the directive 'show-logfile' to false.
[root@localhost ~]#
ISSUE#3
另一件事,我注意到如果我在HTTPS URL前加上“https://”,如下所示,我得到这样的输出。
[root@localhost ~]# siege --user-agent="Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0" -c10 -r1 https://someHTTPSdomain.com
** SIEGE 3.0.3
** Preparing 10 concurrent users for battle.
The server is now under siege...
done.
Transactions: 0 hits
Availability: 0.00 %
Elapsed time: 1.06 secs
Data transferred: 0.00 MB
Response time: 0.00 secs
Transaction rate: 0.00 trans/sec
Throughput: 0.00 MB/sec
Concurrency: 0.00
Successful transactions: 0
Failed transactions: 10
Longest transaction: 0.00
Shortest transaction: 0.00
FILE: /usr/local/var/siege.log
You can disable this annoying message by editing
the .siegerc file in your home directory; change
the directive 'show-logfile' to false.
[root@localhost ~]#
简单地说,没有HTTP或其他响应消息。
在处理HTTPS站点时,我对这些结果感到困惑。不清楚在发出命令时我是否做错了什么,或者是这个工具的一些错误或限制。
我想提一下,在上面的命令中,我在所有命令中使用了“ - user-agent = ”,使用了有效的Windows 8(使用Firefox浏览器)useragent。 我之所以这样做只是为了取代默认的Siege useragent,即“ JoeDog / 1.00 [en](X11; I; Siege 3.0.3)”,因为这个默认的Siege useragent可能会被许多网络服务器列入黑名单(不太确定)。
请有人指导。
提前致谢。
答案 0 :(得分:0)
无法帮助解决这个问题
我猜如果你没有用“https://”启动URL,那么攻击不会知道使用SSL。 (https中的's'代表'安全')。所以我猜302s是转发https URL的服务器。如果你从“0点击”线看起来更远,它会说10次成功交易......那些可能是302回应。它还显示了10个失败的事务 - 因此无法使用SSL进行连接(假设转发只是使用SSL的同一URL)。
以下是10个失败的交易,就像之前一样。 /usr/local/var/siege.log包含什么?也许失败的消息在那里?
答案 1 :(得分:0)
正如另一篇帖子所说,你必须使用--with-ssl选项进行配置。此外,必须安装openssl开发标头。如果您没有SSL头文件./configure,make和make install将运行良好,他们将安装一个工作的siege二进制文件,但它将无法处理HTTPS。
答案 2 :(得分:-1)
我有完全相同的问题。我第一次做了
./configure --with-ssl=/usr/bin/openssl
在尝试使用https时编译正常但是coredumping,这是因为必须提供到ssl lib的路径
./configure --with-ssl=/usr/lib64/openssl
然后围攻能够处理ssl