Wtyczka ograniczająca szybkość bram Kong.
Ustal aktualne zasady limitów na podstawie roku, miesiąca, dnia, godziny, minuty i sekundy, a wiele ograniczeń wchodzi w życie jednocześnie.
Na przykład nie więcej niż 10 połączeń dziennie, nie więcej niż 3 razy na minutę.
Gdy w ciągu minuty jest więcej niż 3 wizyty, błąd zostanie zgłoszony za czwartym razem.
Gdy liczba wizyt przekracza 10 razy dziennie, błąd zostanie zgłoszony po raz jedenasty.
Scenariusz: Muszę ograniczyć interfejs API do jednego IP, które można żądać tylko 3 razy na minutę, po włączeniu wtyczki nie ma problemu z normalnym dostępem do bramy Kong przez IP, ale górna warstwa Konga nadal ma nginx jako obciążenie, więc IP uzyskane przez Kong jest zawsze prywatnym IP maszyny nginx, więc wszystkie adresy IP mogą uzyskać dostęp do interfejsu API tylko 3 razy na minutę, a żaden IP nie korzysta z interfejsu 3 razy na minutę.
Jak pokazano na poniższym rysunku, dopóki interfejs jest żądany 3 razy na minutę, wszyscy odwiedzający będą odrzucani.
Zainstalowałem wtyczkę http-log, aby zapisać żądanie i odpowiadające im informacje, żebyśmy mogli je debugować.
Ponieważ Kong nie otrzymuje client_ip adresu normalnie, jak mogę rozwiązać ten problem?
Rozwiązanie
Zmodyfikuj plik konfiguracyjny kong,
/etc/kong/kong.conf文件,增加trusted_ips = 0.0.0.0/0,::/0
real_ip_header = X-Forwarded-For
W końcuRestart Konga, komenda: kong ponownie uruchamiaj
trusted_ips
Zdefiniuj blok zaufanych adresów IP, które są znane z wysyłania poprawnego nagłówka X-Forwarded-*. Żądania od zaufanych adresów IP powodują, że Kong przekazuje swój nagłówek do X-Forwarded-* w górę. Nieufne żądania powodują, że Kong wstawia własny nagłówek X-Forwarded-*.
Ta właściwość ustawia również dyrektywę w konfiguracji set_real_ip_fromNginx. Akceptuje wartości tego samego typu (bloki CIDR), ale listy rozdzielone przecinkami.
Ufać wszystkim /! \IP, proszę ustaw tę wartość na 0.0.0.0/0,::/0.
Jeśli unix: określa specjalną wartość, wszystkie gniazda domeny UNIX będą zaufane. Dokumentacja referencyjna:https://docs.konghq.com/0.14.x/configuration/#trusted_ips
Po zakończeniu modyfikacji kong może poprawnie uzyskać adres IP klienta, jak pokazano na poniższym rysunku:
(Koniec)
|