No momento, estou construindo uma API e estou procurando uma ferramenta que permita monitorar (em uma GUI) e o uso de limite de taxa. Encontrei algumas soluções empresariais, incluindo:
O plano corporativo Apigee é exatamente o que estou procurando, mas os planos começam em US $ 3000 / mês, que está fora da minha faixa de preço. As outras soluções são caras demais ou não fornecem a solução que estou procurando.
Isso me levou a examinar algumas opções de código aberto, incluindo:
O verniz parece uma solução bastante completa; no entanto, eu precisaria criar uma GUI para visualizar os dados.
Minha opção final seria criar uma solução do zero usando o EventMachine e o ruby.
Algum conselho?
Respostas:
Eu acho que você superestima o quão difícil isso é.
No seu código, basta ter um contador com redis / memcached / mongodb (contador de 1/24 horas ou contador horário / diário, dependendo das suas necessidades) e retornar o erro apropriado quando o limite for atingido. Você pode incrementar as contagens ali mesmo, ou fazer isso de forma assíncrona ao processar seus logs.
Para mostrar os dados, basta fazer uma página da Web simples resumindo as contagens, conforme necessário.
Para nosso uso, não precisamos limitar as coisas exatamente; portanto, geralmente apenas registramos nossa infraestrutura de log e um dos processadores de registro (em tempo real através do scribe) resumirá esse tipo de coisa. A saída é uma página HTML simples com os IPs / clientes ocupados, alguma página que os Nagios podem monitorar e alguns URLs que os munin extraem dados para criar gráficos.
fonte
Você pode usar naxsi com nginx. substitua seu local / requestDenied pelas regras de limite necessárias:
mapeie os parâmetros de redirecionamento naxsi para o limite correspondente:
use limites no local:
fonte