Burst属性在limit_req Nginx指令中不起作用

时间:2018-10-15 08:23:10

标签: nginx

我尝试将DOS攻击保护添加到我的Web服务中。 我将下一个配置添加到我的nginx中:

$count=count($TempSelected);
for($i=1,$j=0;$i<$count;$i++){
    if($TempSelected[$j]['disability']==$TempSelected[$i]['disability']){
        if( abs($TempSelected[$j]['age']-$TempSelected[$i]['age']) <= 23 ){
            $Student1 = $TempSelected[$j]['first_name'].' '.$TempSelected[$j]['last_name'];
            $Student2 = $TempSelected[$i]['first_name'].' '.$TempSelected[$i]['last_name'];
            unset($TempSelected[$i]);
            unset($TempSelected[$j]);
            $FirstEntry = $conn->prepare("SELECT id FROM ".$TableName." WHERE Checked = 0 LIMIT 1");
            $FirstEntry->execute();
            $id = $FirstEntry->fetchColumn();
            $data = [
                'student_1' => $Student1,
                'student_2' => $Student2,
                'Checked' => 1,
                'id' => $id,
                ];
            $AddStudent = $conn->prepare("UPDATE ".$TableName." SET student_1=:student_1, student_2=:student_2, Checked=:Checked WHERE id=:id");
            $AddStudent->execute($data);
        }
    }
    $count=count($TempSelected);
}   

然后我对其进行了测试。我生成的请求流为30rps,我希望将正确处理20rps,并且将截断10个请求。但是我的服务器每秒只处理一个请求,而其他所有请求都被nginx截断了503个http代码。

我想通过IP处理大约20个并发请求(无延迟),但每秒不超过一次。

0 个答案:

没有答案