Solusi Manajemen API [ditutup]

9

Saat ini saya sedang membangun API dan saya sedang mencari alat untuk memungkinkan saya memantau (dalam GUI) dan penggunaan batas tingkat. Saya telah menemukan beberapa solusi perusahaan termasuk:

Rencana perusahaan Apigee persis seperti yang saya cari tetapi rencana mulai dari $ 3000 / bulan yang berada di luar kisaran harga saya. Solusi lain semuanya terlalu mahal atau tidak memberikan solusi yang saya cari.

Ini membuat saya melihat beberapa opsi sumber terbuka termasuk:

Varnish sepertinya solusi yang cukup lengkap; Namun, saya perlu membangun GUI untuk memvisualisasikan data.

Opsi terakhir saya adalah membangun solusi dari awal menggunakan EventMachine dan ruby.

Ada saran?

Mike
sumber
1
Mike. Saya pengembang Api Axle. Tidak ada visualisasi statistik tetapi Axle dilengkapi dengan API yang seharusnya membuatnya relatif mudah untuk membuatnya. Lakukan ping saya jika Anda pikir saya bisa membantu.
Phil Jackson
2
Saya belum mengujinya tetapi bagaimana dengan menggunakan nginx dengan redis dan mengimplementasikan algoritma semacam ini chris6f.com/rate-limiting-with-redis
hellvinz

Jawaban:

3

Saya pikir Anda melebih-lebihkan betapa sulitnya ini.

Dalam kode Anda, miliki saja penghitung dengan redis / memcached / mongodb (penghitung 1/24 jam atau penghitung jam / harian tergantung pada kebutuhan Anda) dan kembalikan kesalahan yang sesuai ketika batas telah dipenuhi. Anda bisa menambah jumlah di sana, atau melakukan itu secara tidak sinkron saat memproses log Anda.

Untuk menampilkan data, cukup buat halaman web sederhana yang merangkum hitungan sesuai kebutuhan.

Untuk penggunaan kita, kita tidak perlu membatasi hal-hal dengan tepat, jadi kita umumnya hanya login melalui infrastruktur log kita dan salah satu dari prosesor log (real-time-ish melalui juru tulis) akan merangkum hal semacam ini. Outputnya adalah halaman HTML sederhana dengan IP sibuk / klien, beberapa halaman yang dapat memonitor nagios dan beberapa URL yang munin menarik data dari untuk membuat grafik.

Tanyakan Bjørn Hansen
sumber
1

Anda dapat menggunakan naxsi dengan nginx. cukup timpa lokasi / requestDenied Anda dengan aturan batas yang Anda butuhkan:

memetakan parameter redirect naxsi ke batas yang sesuai:

map $arg_uri $limit_uri {
  123.php   limit_zone1;
  234.php   limit_zone2;
default limit_default;
}

gunakan batas di lokasi:

 location /RequestDenied {
     proxy_pass http://127.0.0.1:4242;
     limit_req $limit_uri;
   }
DukeLion
sumber