Alasan saya ingin melakukan ini adalah karena pengguna mengembangkan terhadap API kami dengan JavaScript, dan beberapa pengembang mengacaukan dan menyebabkan pengunjung membanting server dengan permintaan AJAX. Ketika ini terjadi, saya ingin dapat membatasi permintaan API hingga 50 permintaan per menit , atau sesuatu seperti itu.
Catatan: (terutama sumber daya intensif DB, jadi mungkin di tingkat jalur, bukan di seluruh server (mis. Throttle "/ json_api /", tetapi tidak "/ statis /").
sumber
zone=limit_req_zone
?$http_authorization
variabel untuk menentukan zona baru di mana kuncinya adalah header seperti itu daripada alamat IP, yaitulimit_req_zone $http_authorization zone = per_user : 10m rate = 5r/s
, dan kemudian menggunakanper_user
zona di bagian lokasi di mana Anda ingin melakukan pembatasan laju per pengguna. Belum diuji, saya baru saja membaca dokumentasi dan daftar variabel nginx ... beri tahu saya jika Anda mencobanya!