我已经为我的服务器配置了各种反 DOS 模块(mod_qos、mod_evasive 等)。我现在要做的是运行一个简单的 PHP 脚本,它多次调用我网站上的 URL,以达到网站上的各种限制。理想情况下,能够以某种方式同时打开各种 URL 的脚本将是理想的。
这可能吗?如果没有,模拟来自一个 IP 的多个请求的最简单方法是什么?
我更喜欢在 Windows 7 中工作的工具?
更新:请记住,我希望能够查看我的服务器是否真的阻止了一些请求。我只玩了一点 AB,但到目前为止还没有显示请求被阻止?
我已经为我的服务器配置了各种反 DOS 模块(mod_qos、mod_evasive 等)。我现在要做的是运行一个简单的 PHP 脚本,它多次调用我网站上的 URL,以达到网站上的各种限制。理想情况下,能够以某种方式同时打开各种 URL 的脚本将是理想的。
这可能吗?如果没有,模拟来自一个 IP 的多个请求的最简单方法是什么?
我更喜欢在 Windows 7 中工作的工具?
更新:请记住,我希望能够查看我的服务器是否真的阻止了一些请求。我只玩了一点 AB,但到目前为止还没有显示请求被阻止?
这在 Windows 下非常有用:OpenLoad
我使用以下方法执行它:
openload.exe http://www.mysite.com 250
然后我可以很容易地在我的 Apache 错误日志中看到结果:
tail -f /usr/local/apache/logs/error_log
我能看见:
[Mon Apr 08 12:09:05 2013] [error] mod_qos(031): access denied, QS_SrvMaxConnPerIP rule: max=50, concurrent connections=59, c=XX.XXX.XX.XXX
[Mon Apr 08 12:09:05 2013] [error] mod_qos(031): access denied, QS_SrvMaxConnPerIP rule: max=50, concurrent connections=60, c=XX.XXX.XX.XXX
etc
最简单的模拟是在给定域的多个页面的数组上使用异步 xmlhttp 请求迭代器函数,在这些页面上,onload 事件启动另一个页面 url 调用并无限期地循环,或者循环一定次数。并且为了让它更有压力,你会并行打开同一个普通 JS + HTML 应用程序的多个实例(比如 9 个,甚至 12 个),看看是否有任何事情发生,或者在它们之后服务器会发生什么已经运行了相当长的时间,并且可能在大约一个小时的时间内达到了超过 100 万个请求。