Plugin key-rate-limit mengimplementasikan pembatasan laju berdasarkan nilai kunci tertentu. Nilai kunci dapat diperoleh dari parameter URL atau header permintaan HTTP. Topik ini menjelaskan cara mengonfigurasi plugin key-rate-limit.
Jenis plugin
Plugin pembatasan laju.
Bidang
Bidang | Tipe data | Diperlukan | Nilai default | Deskripsi |
limit_by_header | string | Tidak. Anda harus mengonfigurasi limit_by_header atau limit_by_param. | - | Header permintaan HTTP tempat nilai kunci untuk pembatasan laju diperoleh. |
limit_by_param | string | Tidak. Anda harus mengonfigurasi limit_by_header atau limit_by_param. | - | Parameter URL tempat nilai kunci untuk pembatasan laju diperoleh. |
limit_keys | array of object | Ya | - | Jumlah kali pembatasan laju dipicu setelah nilai kunci tertentu cocok. |
Tabel berikut menjelaskan item konfigurasi dalam bidang limit_keys.
Item konfigurasi | Tipe data | Diperlukan | Nilai default | Deskripsi |
key | string | Ya | - | Nilai kunci yang digunakan untuk mencocokkan permintaan. |
query_per_second | number | Tidak. Anda harus mengonfigurasi query_per_second, query_per_minute, query_per_hour, atau query_per_day. | - | Jumlah permintaan yang diizinkan per detik. |
query_per_minute | number | Tidak. Anda harus mengonfigurasi query_per_second, query_per_minute, query_per_hour, atau query_per_day. | - | Jumlah permintaan yang diizinkan per menit. |
query_per_hour | number | Tidak. Anda harus mengonfigurasi query_per_second, query_per_minute, query_per_hour, atau query_per_day. | - | Jumlah permintaan yang diizinkan per jam. |
query_per_day | number | Tidak. Anda harus mengonfigurasi query_per_second, query_per_minute, query_per_hour, atau query_per_day. | - | Jumlah permintaan yang diizinkan per hari. |
Contoh
Terapkan pembatasan laju berdasarkan nilai kunci dari header permintaan x-ca-key.
limit_by_header: x-ca-key limit_keys: - key: 102234 query_per_second: 10 - key: 308239 query_per_hour: 10Terapkan pembatasan laju berdasarkan nilai kunci dari parameter permintaan apikey.
limit_by_param: apikey limit_keys: - key: 9a342114-ba8a-11ec-b1bf-00163e1250b5 query_per_second: 10 - key: a6a6d7f2-ba8a-11ec-bec2-00163e1250b5 query_per_minute: 100Aktifkan pembatasan laju untuk rute atau nama domain.
Gunakan konfigurasi plugin berikut untuk rute
route-adanroute-b:limit_by_header: x-ca-key limit_keys: - key: 102234 query_per_second: 10Gunakan konfigurasi plugin berikut untuk nama domain
*.example.comdantest.com:limit_by_header: x-ca-key limit_keys: - key: 102234 query_per_second: 100CatatanDalam contoh ini, rute
route-adanroute-badalah rute yang ditentukan saat pembuatan rute gateway. Jika permintaan klien cocok dengan salah satu rute, aturan yang dikonfigurasikan untuk rute tersebut akan berlaku.Dalam contoh ini, nama domain
*.example.comdantest.comdigunakan untuk mencocokkan nama domain dalam permintaan. Jika permintaan klien cocok dengan salah satu nama domain, aturan yang dikonfigurasikan untuk nama domain tersebut akan berlaku.Aturan yang Anda konfigurasikan berlaku secara berurutan. Jika aturan pertama cocok, aturan berikutnya akan diabaikan.