Score:0

วิธีจำกัด Nginx ให้สูงสุด 50 คำขอต่อวินาทีโดยไม่ขึ้นกับ IP

ธง in

ฉันกำลังมองหาวิธีจำกัด Nginx สำหรับตำแหน่งเป็นจำนวนคำขอต่อวินาที เป็นอิสระ ของ IP ต้นทาง จากความเข้าใจของฉันคุณสมบัติการจำกัดอัตรานั้นไวต่อ IP ซึ่งไม่สามารถปิดได้

อะไรคือแนวทางที่ถูกต้องที่นี่?

jp flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [จำกัดคำขอ Nginx ทั่วโลก](https://serverfault.com/questions/817164/nginx-limit-requests-globally)
frlan avatar
in flag
จากความเข้าใจของฉันตัวเลือกทั้งหมดเหล่านี้มาจาก IP มันใช้งานได้ถ้าคุณมีเช่น 10r/m จาก IP เดียว แต่สิ่งที่คุณขอจาก /8 หรือแม้แต่ /0? ฉันแค่เข้าใจเอกสารผิดหรือเปล่า
ie flag
ตัวเลือกทั้งหมดนั้นไม่ได้มาจาก IP คำตอบที่นี่ใช้คำคงที่ (ทั่วโลก) เพื่อฝากคำขอ ดังนั้นคำขอทั้งหมดจะไปในที่ฝากข้อมูลเดียวกันและถูกจำกัดโดยไม่ขึ้นกับ IP: https://serverfault.com/a/817165/362828 ส่วนนี้ในคำถามคือสิ่งที่ทำให้ IP: `$binary_remote_addr` แต่คีย์นั้นสามารถตั้งค่าเป็นอะไรก็ได้ (เช่น คุณสามารถจำกัดตามคุกกี้หรือ URL คำขอ)
Score:0
ธง ie

เช่นนั้น

limit_req_zone global zone=global_limit:อัตรา 1k=50/s;

เดอะ ทั่วโลก ส่วนหนึ่งคือคีย์ที่ Nginx ใช้เพื่อฝากข้อมูลคำขอ เมื่อตั้งค่าเป็นสตริงคงที่ (อาจเป็นอะไรก็ได้) แทนที่จะเป็นตัวแปร คำขอทั้งหมดจะไปอยู่ในบัคเก็ตเดียวกัน

หากต้องการจำกัดด้วย IP คุณจะตั้งค่าเป็น $binary_remote_addr. คุณสามารถจำกัดอัตราสำหรับอะไรก็ได้ (ดู https://www.nginx.com/blog/dynamic-bandwidth-limits-nginx-plus-key-value-store/#Complete-Sample-NGINX-Configuratio สำหรับตัวอย่างที่ซับซ้อน)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา