API 관리 솔루션 [닫기]


9

현재 API를 작성 중이며 GUI에서 속도 제한 사용량을 모니터링 할 수있는 도구를 찾고 있습니다. 나는 다음을 포함한 몇 가지 엔터프라이즈 솔루션을 보았습니다.

Apigee 엔터프라이즈 계획은 내가 찾고있는 것이지만 계획 은 가격대에서 벗어난 한달에 $ 3000에서 시작 합니다. 다른 솔루션은 모두 너무 비싸거나 내가 찾고있는 솔루션을 제공하지 않습니다.

이를 통해 다음과 같은 오픈 소스 옵션을 살펴볼 수있었습니다.

바니시는 상당히 완벽한 솔루션처럼 보입니다. 그러나 데이터를 시각화하려면 GUI를 작성해야합니다.

마지막 옵션은 EventMachine과 ruby를 사용하여 처음부터 솔루션을 구축하는 것입니다.

어떤 충고?


1
마이크. 저는 Api Axle의 개발자입니다. 통계의 시각화는 없지만 Axle에는 API를 제공하므로 비교적 쉽게 작성할 수 있습니다. 내가 도움이 될 수 있다고 생각되면 저를 핑하십시오.
Phil Jackson

2
나는 그것을 테스트하지는 않았지만 redis와 함께 nginx를 사용하고 이런 종류의 알고리즘을 구현하는 것은 chris6f.com/rate-limiting-with-redis
hellvinz

답변:


3

나는 이것이 얼마나 어려운지를 과대 평가한다고 생각합니다.

코드에는 redis / memcached / mongodb (필요에 따라 1/24 시간 카운터 또는 시간별 / 일일 카운터)가있는 카운터가 있고 제한이 충족되면 적절한 오류를 반환합니다. 바로 카운트를 증가 시키거나 로그를 처리 할 때 비동기 적으로 수행 할 수 있습니다.

데이터를 표시하려면 필요에 따라 개수를 요약하는 간단한 웹 페이지를 만드십시오.

우리가 사용하기 위해 우리는 사물을 정확하게 제한 할 필요가 없으므로, 일반적으로 우리는 단지 로그 인프라를 통해 로그하고 (실시간에서 스크라이브를 통한) 로그 프로세서 중 하나가 이런 종류의 것을 요약합니다. 출력은 사용중인 IP / 클라이언트가있는 간단한 HTML 페이지이며, 일부는 nagios가 모니터링 할 수있는 페이지와 munin은 데이터를 가져와 그래프를 작성하는 URL입니다.


1

nginx와 함께 naxsi 를 사용할 수 있습니다 . 필요한 제한 규칙으로 / 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;
   }
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.