Score:1

การกำหนดค่าขีด จำกัด อัตราไม่ทำงานใน nginx

ธง mx

ฉันกำลังพยายามจำกัดอัตราการเรียกไปยัง URL ที่มีคำนำหน้า /api/ ฉันได้กำหนดค่าขีดจำกัดอัตราโดยแนบการกำหนดค่าแล้ว แต่ฉันไม่เห็นการควบคุมปริมาณใดๆ เมื่อใช้ Axios เพื่อทดสอบ

limit_req_zone $binary_remote_addr zone=mylimit:10m อัตรา=1r/s;
เซิร์ฟเวอร์ {
    server_name gmmff.test;
    รูท /home/angel/wdev/laravel/gmf/public;

    add_header X-Frame-ตัวเลือก "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";

    error_log /var/log/nginx/gmf.log เตือน;
    access_log /var/log/nginx/gmf-access.log;
    ดัชนี index.php;

    ชุดอักขระ utf-8;

    ที่ตั้ง / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    ตำแหน่ง /api/ {
        โซน limit_req = mylimit;
        เขียนใหม่ ^/api/(.*)$ /index.php?$query_string;
    }

    สถานที่ = /favicon.ico { access_log off; ปิด log_not_found; }
    ตำแหน่ง = /robots.txt { access_log off; ปิด log_not_found; }

    error_page 404 /index.php;

    ตำแหน่ง ~ \.php$ {
        fastcgi_pass ยูนิกซ์:/var/run/php/php8.0-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        รวม fastcgi_params;
    }

    สถานที่ ~ /\.(?!เป็นที่รู้จัก).* {
        ปฏิเสธทั้งหมด
    }

}
Score:0
ธง jp

URI ที่ขึ้นต้นด้วย /api/ ถูกเขียนใหม่เป็น /index.php และ limit_req คำสั่งไม่อยู่ในขอบเขตอีกต่อไปเมื่อประมวลผล URI หลัง

ตัวเลือก 1) คุณสามารถดำเนินการ index.php ไฟล์ภายใน ที่ตั้ง /api/ บล็อก.

ตัวอย่างเช่น:

ตำแหน่ง /api/ {
    โซน limit_req = mylimit;
    รวม fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $realpath_root/index.php;
    fastcgi_pass ยูนิกซ์:/var/run/php/php8.0-fpm.sock;
}

เพียงแค่ชี้ SCRIPT_FILENAME ถึงที่ตั้ง index.php.


ตัวเลือก 2) ย้าย limit_req คำสั่งเพื่อให้อยู่ในขอบเขตเสมอ แต่เปิดและปิดได้อย่างมีประสิทธิภาพโดยจัดการตัวแปร "คีย์" ด้วย a แผนที่ คำสั่ง

ตัวอย่างเช่น:

แผนที่ $request_uri $โทเค็น {
    ~^/api/ $binary_remote_addr;
    ค่าเริ่มต้น    '';
}
limit_req_zone $token zone=mylimit:อัตรา 10m=1r/s;

เซิร์ฟเวอร์ {
    ...
    โซน limit_req = mylimit;
    ...
}

จาก เอกสาร:

คำขอที่มีค่าคีย์ว่างจะไม่ถูกพิจารณา

Angel avatar
mx flag
ฉันได้ลองวิธีที่ 1 แล้ว โดยมีการกำหนดค่าต่อไปนี้ https://pastebin.com/fC5EBifi ฉันตั้งอัตราเป็น 3r/s แต่ผลลัพธ์สุดท้ายคืออัตราจำกัดที่ 1r/s ฉันลองวิธีที่ 2 และผลลัพธ์เดียวกัน .

โพสต์คำตอบ

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