Kong gateway snelheidsbeperkende plugin.
Stel de huidige limietregels in op basis van jaar, maand, dag, uur, minuut en seconde, en meerdere beperkingen gaan tegelijkertijd van kracht.
Bijvoorbeeld, niet meer dan 10 oproepen per dag, niet meer dan 3 keer per minuut.
Wanneer er meer dan 3 bezoeken per minuut zijn, wordt er bij de vierde keer een fout gemeld.
Wanneer het aantal bezoeken 10 keer per dag groter is, wordt er bij de elfde keer een fout gemeld.
Scenario: Ik moet de API-interface beperken tot één IP die slechts 3 keer per minuut kan worden opgevraagd; wanneer ik de plug-in inschakel, is het normaal geen probleem om via de IP toegang te krijgen tot de Kong-gateway, maar de bovenste laag van Kong heeft nog steeds nginx als load, dus het IP dat door Kong wordt verkregen is altijd het privé-IP van de nginx-machine, zodat alle IP's slechts 3 keer per minuut toegang krijgen tot de API-interface, niet één IP benadert de interface 3 keer per minuut.
Zoals te zien is in de onderstaande figuur, zolang de interface drie keer per minuut wordt aangevraagd, worden alle bezoekers afgewezen.
Ik heb de http-log plugin geïnstalleerd om het verzoek en de bijbehorende informatie vast te leggen, zodat we het kunnen debuggen.
Aangezien Kong client_ip adres niet normaal verkrijgt, hoe kan ik dit probleem dan oplossen?
Oplossing
Pas het configuratiebestand van de kong aan,
/etc/kong/kong.conf文件,增加trusted_ips = 0.0.0.0/0,::/0
real_ip_header = X-Forwarded-For
EindelijkHerstart Kong, commando: kong herstart
trusted_ips
Definieer een blok van vertrouwde IP-adressen waarvan bekend is dat ze de juiste X-Forwarded-* header sturen. Verzoeken van vertrouwde IP's zorgen ervoor dat Kong zijn header doorstuurt naar X-Forwarded-* upstream. Onbetrouwbare verzoeken zorgen ervoor dat Kong zijn eigen X-Forwarded-* header invoegt.
Deze eigenschap stelt ook de richtlijn in in de set_real_ip_fromNginx configuratie. Het accepteert waarden van hetzelfde type (CIDR-blokken), maar met komma-gescheiden lijsten.
Om iedereen te vertrouwen /! \IP, stel deze waarde in op 0.0.0.0/0,::/0.
Als unix: een speciale waarde specificeert, worden alle UNIX-domeinsockets vertrouwd. Referentiedocumentatie:https://docs.konghq.com/0.14.x/configuration/#trusted_ips
Na voltooiing van de wijziging kan Kong correct het client-IP-adres verkrijgen, zoals weergegeven in de onderstaande figuur:
(Einde)
|