壓力測(cè)試及防止惡意壓力測(cè)試的方法(nginx和apache)
2018-12-20 08:54:15
11135
nginx壓力測(cè)試方法: #ab命令 #安裝ab #Centos系統(tǒng) yum install apr-util #Ubuntu系統(tǒng) sudo apt-get install apache2-utils #ab命令的參數(shù) -n //在測(cè)試會(huì)話(huà)中所執(zhí)行的請(qǐng)求個(gè)數(shù)。默認(rèn)為1 -c //一次產(chǎn)生的請(qǐng)求個(gè)數(shù)。默認(rèn)為1 -t //測(cè)試所進(jìn)行的最大秒數(shù)。默認(rèn)值為50000 -p //包含了需要的POST的數(shù)據(jù)文件 -T //POST數(shù)據(jù)所使用的Content-type頭信息 #實(shí)例 ab -c 1000 -n 5000 http://www.tjdsmy.cn/ 每次發(fā)送1000并發(fā)的請(qǐng)求數(shù),請(qǐng)求數(shù)總數(shù)為5000。 ------------------------------------------------------------------------------ #nginx防止被壓力測(cè)試的設(shè)置方法: #限制同一IP并發(fā)數(shù)最大為10 vim /etc/nginx/nginx.conf http{}字段第一行添加: limit_conn_zone $binary_remote_addr zone=one:10m; vim /etc/nginx/conf.d/default server{}字段添加: limit_conn one 10; #重啟nginx service nginx restart #如出現(xiàn)這種錯(cuò)誤提示,表明nginx.conf中的limit_conn_zone $binary_remote_addr zone=one:10m; #沒(méi)有添加到正確的區(qū)域,最后添加在http字段的第一行。
the size 10485760 of shared memory zone "one" conflicts with already declared size 0 in /etc/nginx/nginx.conf:33
apahce 壓力測(cè)試方法:打開(kāi)Apache服務(wù)器的安裝路徑,在bin目錄中有一個(gè)ab.exe的可執(zhí)行程序,就是我們要介紹的壓力測(cè)試工 具。
在Windows系統(tǒng)的命令行下,進(jìn)入ab.exe程序所在目錄,執(zhí)行ab.exe程序。注意直接雙擊無(wú)法正確運(yùn)行。
ab 的用法是:ab [options] [http://]hostname[:port]/path
例如:ab -n 5000 -c 200 http://www.tjdsmy.cn/index.php
上例表示總共訪問(wèn)http://www.tjdsmy.cn/index.php這個(gè)腳本5000次,200并發(fā)同時(shí)執(zhí)行。
ab常用參數(shù)的介紹:
-n :總共的請(qǐng)求執(zhí)行數(shù),缺省是1;
-c: 并發(fā)數(shù),缺省是1;
-t:測(cè)試所進(jìn)行的總時(shí)間,秒為單位,缺省50000s
-p:POST時(shí)的數(shù)據(jù)文件
-w: 以HTML表的格式輸出結(jié)果
執(zhí)行測(cè)試用例:ab -n 1000 -c 100 -w http://www.tjdsmy.cn/index.php >>c:\1.html
上面的測(cè)試用例表示100并發(fā)的情況下,共測(cè)試訪問(wèn)index.php腳本1000次,并將測(cè)試結(jié)果保存到c:\1.html文件中。
會(huì)員登錄
賬號(hào)登錄 還沒(méi)有賬號(hào)?立即注冊(cè)