Actualmente estoy creando una API y estoy buscando una herramienta que me permita monitorear (en una GUI) y el uso de límite de velocidad. He encontrado algunas soluciones empresariales que incluyen:
El plan empresarial Apigee es exactamente lo que estoy buscando, pero los planes comienzan en $ 3000 / mes, lo que está fuera de mi rango de precios. Las otras soluciones son demasiado caras o no proporcionan la solución que estoy buscando.
Esto me llevó a mirar algunas opciones de código abierto que incluyen:
El barniz parece una solución bastante completa; sin embargo, necesitaría construir una GUI para visualizar los datos.
Mi última opción sería construir una solución desde cero usando EventMachine y Ruby.
¿Algún consejo?
nginx
monitoring
proxy
ruby-on-rails
Miguel
fuente
fuente
Respuestas:
Creo que sobreestimas lo difícil que es esto.
En su código, solo tenga un contador con redis / memcached / mongodb (contador de 1/24 horas o contador por hora / diario según sus necesidades) y devuelva el error apropiado cuando se haya alcanzado el límite. Puede incrementar los recuentos allí mismo o hacer eso de forma asíncrona al procesar sus registros.
Para mostrar los datos, simplemente haga una página web simple que resuma los recuentos según sea necesario.
Para nuestro uso, no necesitamos limitar las cosas exactamente, por lo que generalmente solo iniciamos sesión en nuestra infraestructura de registros y uno de los procesadores de registros (en tiempo real a través de escribano) resumirá este tipo de cosas. El resultado es una página HTML simple con las direcciones IP / clientes ocupados, alguna página que Nagios puede monitorear y algunas URL de las que Munin extrae datos para hacer gráficos.
fuente
Puedes usar naxsi con nginx. simplemente anule su ubicación / requestDenied con las reglas de límite que necesita:
mapear los parámetros de redireccionamiento de naxsi al límite correspondiente:
límites de uso en la ubicación:
fuente