Kong Gateway Rate-Limiting-Plugin.
Setze aktuelle Grenzregeln basierend auf Jahr, Monat, Tag, Stunde, Minute und Sekunde, und mehrere Einschränkungen treten gleichzeitig in Kraft.
Zum Beispiel nicht mehr als 10 Anrufe pro Tag, nicht mehr als 3 Mal pro Minute.
Wenn es mehr als drei Besuche pro Minute gibt, wird beim vierten Mal ein Fehler gemeldet.
Wenn die Anzahl der Besuche 10 Mal am Tag überschreitet, wird beim elften Mal ein Fehler gemeldet.
Szenario: Ich muss die API-Schnittstelle auf eine einzige IP beschränken, die nur dreimal pro Minute angefordert werden kann. Wenn ich das Plug-in aktiviere, gibt es kein Problem, das Kong-Gateway normal über die IP zu erreichen, aber die obere Kong-Ebene hat nginx weiterhin als Last, sodass die von Kong erhaltene IP immer die private IP der nginx-Maschine ist, sodass alle IPs nur dreimal pro Minute auf die API-Schnittstelle zugreifen können, nicht eine einzelne IP dreimal pro Minute auf die Schnittstelle zugreifen kann.
Wie in der untenstehenden Abbildung gezeigt, werden alle Besucher abgelehnt, solange die Schnittstelle dreimal pro Minute angefordert wird.
Ich habe das http-log-Plugin installiert, um die Anfrage und die entsprechenden Informationen aufzuzeichnen, damit wir es debuggen können.
Da Kong client_ip Adresse nicht normal bekommt, wie kann ich dieses Problem beheben?
Lösung
Ändern Sie die Kong-Konfigurationsdatei,
/etc/kong/kong.conf文件,增加trusted_ips = 0.0.0.0/0,::/0
real_ip_header = X-Weitergeleitet-Für
EndlichKong neu starten, Befehl: Kong Neustart
trusted_ips
Definiere einen Block vertrauenswürdiger IP-Adressen, von denen bekannt ist, dass sie den korrekten X-Forwarded-*-Header senden. Anfragen von vertrauenswürdigen IPs führen dazu, dass Kong seinen Header an X-Forwarded-* upstream weiterleitet. Nicht vertrauenswürdige Anfragen führen dazu, dass Kong seinen eigenen X-Forwarded-*-Header einfügt.
Diese Eigenschaft setzt auch die Direktive in der set_real_ip_fromNginx-Konfiguration. Es akzeptiert Werte desselben Typs (CIDR-Blöcke), aber kommagetrennte Listen.
Allen zu vertrauen /! \IP, bitte setzen Sie diesen Wert auf 0.0.0.0/0,::/0.
Wenn unix: einen speziellen Wert angibt, werden alle UNIX-Domänensockets vertrauenswürdig. Referenzdokumentation:https://docs.konghq.com/0.14.x/configuration/#trusted_ips
Nach Abschluss der Änderung kann Kong die Client-IP-Adresse korrekt erhalten, wie in der untenstehenden Abbildung gezeigt:
(Ende)
|