Je suis en train de créer une API et je recherche un outil pour me permettre de surveiller (dans une interface graphique) et de limiter les taux d'utilisation. J'ai rencontré quelques solutions d'entreprise, notamment:
Le plan d'entreprise Apigee est exactement ce que je recherche, mais les plans commencent à 3000 $ / mois, ce qui est hors de ma fourchette de prix. Les autres solutions sont toutes trop chères ou ne fournissent pas la solution que je recherche.
Cela m'a amené à examiner certaines options open source, notamment:
Le vernis semble être une solution assez complète; cependant, je devrais créer une interface graphique pour visualiser les données.
Ma dernière option serait de créer une solution à partir de zéro en utilisant EventMachine et ruby.
Aucun conseil?
Réponses:
Je pense que vous surestimez à quel point c'est difficile.
Dans votre code, il vous suffit d'avoir un compteur avec redis / memcached / mongodb (compteur 1/24 heures ou compteur horaire / quotidien selon vos besoins) et renvoyer l'erreur appropriée lorsque la limite a été atteinte. Vous pouvez soit incrémenter le nombre directement, soit le faire de manière asynchrone lors du traitement de vos journaux.
Pour afficher les données, créez simplement une page Web résumant les chiffres selon vos besoins.
Pour notre utilisation, nous n'avons pas besoin de limiter les choses exactement, donc nous nous connectons généralement à travers notre infrastructure de journaux et l'un des processeurs de journaux (en temps réel via scribe) résumera ce genre de chose. Le résultat est une simple page HTML avec les adresses IP / clients occupés, une page que les nagios peuvent surveiller et quelques URL dont munin extrait les données pour créer des graphiques.
la source
Vous pouvez utiliser naxsi avec nginx. remplacez simplement votre emplacement / requestDenied avec les règles de limite dont vous avez besoin:
mappez les paramètres de redirection naxsi à la limite correspondante:
utiliser des limites dans l'emplacement:
la source