API管理解决方案


9

我目前正在构建一个API,并且正在寻找一种工具来允许我监视(在GUI中)和速率限制用法。我遇到过一些企业解决方案,包括:

Apigee企业计划正是我想要的,但计划的起价为每月3000美元,超出了我的价格范围。其他解决方案要么太贵,要么不提供我想要的解决方案。

这使我看了一些开源选项,包括:

清漆似乎是一个相当完整的解决方案。但是,我需要构建一个GUI来可视化数据。

我最后的选择是使用EventMachine和ruby从头开始构建解决方案。

有什么建议吗?


1
麦克风。我是Api Axle的开发人员。没有可视化的统计数据,但是Axle附带了一个API,该API相对应易于构建。如果您认为我可以提供帮助,请对我执行ping操作。
菲尔·杰克逊

2
我还没有测试过,但是如何将Nginx
Redis

Answers:


3

我认为您高估了这有多难。

在您的代码中,只需有一个带有redis / memcached / mongodb的计数器(根据您的需要为1/24小时计数器或每小时/每天的计数器),并在达到限制时返回适当的错误。您可以在此处增加计数,也可以在处理日志时异步进行计数。

为了显示数据,只需制作一个简单的网页即可根据需要汇总计数。

对于我们的使用,我们不需要严格限制所有内容,因此通常只需要通过日志基础结构进行日志记录,其中一个(实时,通过抄写员)日志处理器将概述此类情况。输出是一个简单的HTML页面,其中包含繁忙的IP /客户端,nagios可以监视的某些页面以及munin从中提取数据以创建图表的URL。


1

您可以将naxsi与nginx 结合使用。只需使用您需要的限制规则覆盖/ requestDenied位置:

将naxsi重定向参数映射到相应的限制:

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

在位置使用限制:

 location /RequestDenied {
     proxy_pass http://127.0.0.1:4242;
     limit_req $limit_uri;
   }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.