Kong게이트웨이 속도 제한 플러그인.
연도, 월, 일, 시간, 분, 초 단위를 기준으로 현재 제한 규칙을 설정하면 여러 제한이 동시에 적용됩니다.
예를 들어, 하루에 10건을 넘지 않고, 분당 3회 이상 전화해야 합니다.
1분 내에 3회 이상의 방문이 있을 경우, 네 번째로 오류가 보고됩니다.
하루에 방문 횟수가 10회를 초과하면 11번째 방문 시 오류가 보고됩니다.
상황: API 인터페이스를 분당 3번만 요청할 수 있는 단일 IP로 제한해야 합니다. 플러그인을 활성화하면 정상적으로 IP를 통해 Kong 게이트웨이에 접근하는 데 문제가 없지만, Kong의 상위 계층에는 여전히 nginx가 로드되어 있습니다. 그래서 kong이 얻은 IP는 항상 nginx 기계의 개인 IP가 되어 모든 IP가 분당 3회만 API 인터페이스에 접근할 수 있고, 단일 IP가 분당 3회 인터페이스에 접근하는 것은 아닙니다.
아래 그림에서 보듯, 분당 3회 요청 시 모든 방문자가 거부됩니다.
요청과 관련 정보를 기록하는 http-log 플러그인을 설치해 디버깅할 수 있게 했습니다.
Kong이 정상적으로 client_ip 주소를 받지 못하는데, 이 문제를 어떻게 해결할 수 있을까요?
용액
콩 설정 파일을 수정하세요,
/etc/kong/kong.conf文件,增加trusted_ips = 0.0.0.0/0,::/0
real_ip_header = X-전달-For(전달됨)
마침내콩 재시작, 명령: 콩 재시작
trusted_ips
올바른 X-Forwarded-* 헤더를 보내는 것으로 알려진 신뢰할 수 있는 IP 주소 블록을 정의합니다. 신뢰할 수 있는 IP로부터의 요청은 Kong이 헤더를 X-Forwarded-* 상류로 전달하게 만듭니다. 신뢰할 수 없는 요청은 Kong이 자체 X-Forwarded-* 헤더를 삽입하게 만듭니다.
이 속성은 또한 set_real_ip_fromNginx 구성에서 지시를 설정합니다. 동일한 유형의 값을 받아들이지만(CIDR 블록), 쉼표로 구분된 리스트를 사용합니다.
모두를 믿으라고요 /! \IP, 이 값을 0.0.0.0/0,::/0으로 설정해 주세요.
unix:가 특별한 값을 지정하면 모든 UNIX 도메인 소켓이 신뢰됩니다. 참고 문서:https://docs.konghq.com/0.14.x/configuration/#trusted_ips
수정이 완료된 후, Kong은 아래 그림과 같이 클라이언트 IP 주소를 올바르게 얻을 수 있습니다:
(끝)
|