API Management Solutions [chiuso]


9

Attualmente sto creando un'API e sto cercando uno strumento che mi consenta di monitorare (in una GUI) e l'utilizzo del limite di velocità. Mi sono imbattuto in alcune soluzioni aziendali tra cui:

Il piano aziendale Apigee è esattamente quello che sto cercando, ma i piani partono da $ 3000 / mese che è fuori dalla mia fascia di prezzo. Le altre soluzioni sono troppo costose o non forniscono la soluzione che sto cercando.

Questo mi ha portato a esaminare alcune opzioni open source tra cui:

La vernice sembra una soluzione abbastanza completa; tuttavia, avrei bisogno di creare una GUI per visualizzare i dati.

La mia ultima opzione sarebbe quella di creare una soluzione da zero usando EventMachine e ruby.

Qualche consiglio?


1
Mike. Sono lo sviluppatore di Api Axle. Non c'è visualizzazione delle statistiche ma Axle viene fornito con un'API che dovrebbe renderne relativamente semplice la creazione. Fammi un rumore metallico se pensi che possa esserti di aiuto.
Phil Jackson,

2
Non l'ho testato, ma per quanto riguarda l'utilizzo di nginx con redis e l'implementazione di questo tipo di algoritmo chris6f.com/rate-limiting-with-redis
hellvinz

Risposte:


3

Penso che tu sopravvaluti quanto sia difficile.

Nel tuo codice basta avere un contatore con redis / memcached / mongodb (contatore delle 1/24 ore o contatore orario / giornaliero a seconda delle tue esigenze) e restituire l'errore appropriato quando il limite è stato raggiunto. Puoi incrementare i conteggi proprio lì o farlo in modo asincrono durante l'elaborazione dei tuoi log.

Per mostrare i dati, basta creare una semplice pagina Web che riassuma i conteggi secondo necessità.

Per il nostro uso non abbiamo bisogno di limitare esattamente le cose, quindi generalmente accediamo alla nostra infrastruttura di log e uno dei processori di log (in tempo reale attraverso lo scriba) riassumerà questo genere di cose. L'output è una semplice pagina HTML con gli IP / i client occupati, alcune pagine che i nagios possono monitorare e alcuni URL da cui estraggono i dati per creare grafici.


1

Puoi usare naxsi con nginx. sovrascrivi la tua posizione / requestDenied con le regole di limite necessarie:

mappare i parametri di reindirizzamento di naxsi al limite corrispondente:

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

utilizzare limiti nella posizione:

 location /RequestDenied {
     proxy_pass http://127.0.0.1:4242;
     limit_req $limit_uri;
   }
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.