อะไรคือความแตกต่างระหว่างสิ่งนี้:
limit_req_zone $binary_remote_addr zone=flood:10m rate=30r/s;
limit_req zone=flood nodelay
และ:
limit_req_zone $binary_remote_addr zone=flood:10m rate=30r/s;
limit_req zone=flood burst=5 nodelay
อะไรคือความแตกต่างระหว่างสิ่งนี้:
limit_req_zone $binary_remote_addr zone=flood:10m rate=30r/s;
limit_req zone=flood nodelay
และ:
limit_req_zone $binary_remote_addr zone=flood:10m rate=30r/s;
limit_req zone=flood burst=5 nodelay
คำตอบ:
ในกรณีของคุณ:
อนุญาตไม่เกิน 30 คำขอต่อวินาทีโดยเฉลี่ยโดยมีการส่งเสียงระเบิดไม่เกิน 5 คำขอ
การอ้างอิง: http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
ตามที่กล่าวไว้เกี่ยวกับระเบิดในhttp://nginx.org/en/docs/http/ngx_http_limit_req_module.html
คำขอที่มากเกินไปจะล่าช้าจนกว่าจำนวนของพวกเขาจะเกินกว่าขนาดการระเบิดสูงสุด
ซึ่งหมายความว่าในกรณีของคุณคำขอ 5 ข้อแรกจะถูก 'เพิกเฉย' และจะนับเฉพาะคำขอ 6 ขึ้นไป ดังนั้นตามคำขอ 35 ถึงขีด จำกัด ของ 30 จากนั้นตามคำร้องขอ 36 ภายใน 1 วินาทีเดียวกันที่มาจากแหล่งกำเนิดเดียวกัน nginx จะส่งการตอบกลับ 503 แทนที่จะดำเนินการตามคำขอต่อไป
Burst หมายความว่าการล่าช้าในวินาทีถัดไปหากมีเกิน 30 คำขอ / วินาที nginx จะส่งรหัสข้อผิดพลาด 503 ข้อ
ระเบิดทำงานเหมือนคิว