Score:1

การบันทึก IP ที่จำกัดอัตรา nginx ลงในไฟล์เฉพาะ

ธง in

ฉันกำลังมองหาวิธีการซิงโครไนซ์ IP ที่จำกัดอัตราระหว่างโหนด nginx ฉันต้องการบันทึก IP เหล่านี้และหลังจากนั้นก็ส่งเข้าไปในฐานข้อมูลและพัฒนาเอเจนต์เพื่ออัปเดต IP ที่ถูกบล็อกในไฟล์กำหนดค่า nginx

ความท้าทายของฉันคือการหาวิธีจำกัด IPs nginx ด้วย 429 รหัสสถานะ

ดังนั้น เป็นไปได้หรือไม่ที่จะบันทึก IP ที่จำกัดอัตราลงในไฟล์เฉพาะใน nginx หรือคุณแนะนำวิธีอื่นในการซิงโครไนซ์ IP ที่จำกัดอัตราระหว่างโหนด

Score:0
ธง cz

ใช่ คุณสามารถทำได้ และตัวอย่างที่คล้ายกันนี้แม้แต่ใน เอกสาร nginx.

เดอะ access_log คำสั่งยังใช้ตัวเลือก ถ้า= พารามิเตอร์ที่ประเมินตัวแปรที่กำหนด และบันทึกเฉพาะเมื่อผลลัพธ์ไม่ใช่ 0 หรือสตริงว่าง ผสมผสานกับการที่คุณสามารถมีได้มากกว่าหนึ่ง access_log ในแต่ละระดับ คุณสามารถเข้าสู่ระบบที่แตกต่างกันตามความต้องการของคุณ

ก่อนอื่นคุณจะต้องมี แผนที่ เพื่อทำแผนที่ สถานะการตอบสนอง HTTP คุณสนใจในตัวแปร จำไว้ แผนที่ จะต้องอยู่นอก เซิร์ฟเวอร์ บล็อก.

แผนที่ $สถานะ $rate_limited {
    เริ่มต้น 0;
    429 1;
}

จากนั้นในส่วนที่เกี่ยวข้อง เซิร์ฟเวอร์ บล็อกคุณจะประกาศของคุณ access_log.

access_log /var/log/nginx/rate_limited.log รวมกัน if=$rate_limited;

โปรดจำไว้ว่าลักษณะใด ๆ ของ access_log ในระดับหนึ่งจะแทนที่ระดับอื่นๆ ทั้งหมดจากระดับที่สูงกว่า ดังนั้นคุณจะต้องการคัดลอก (หรือดีกว่า รวม) ที่ access_log คำสั่งจากระดับที่สูงขึ้นที่คุณต้องการใช้

Little Apocrypha avatar
in flag
ขอขอบคุณ! แน่นอนว่าฉันต้องกำหนดรูปแบบ access_log ที่แตกต่างกัน ขอบคุณสำหรับคำแนะนำที่เป็นประโยชน์ของคุณ :)

โพสต์คำตอบ

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