Plugin de limitation de débit Kong Gateway.
Établissez des règles de limite actuelles basées sur l’année, le mois, le jour, l’heure, la minute et la seconde, et plusieurs restrictions entrent en vigueur simultanément.
Par exemple, pas plus de 10 appels par jour, pas plus de 3 fois par minute.
Lorsqu’il y a plus de 3 visites en une minute, une erreur sera signalée à la quatrième fois.
Lorsque le nombre de visites dépasse 10 fois dans une journée, une erreur sera signalée à la onzième fois.
Scénario : je dois limiter l’interface API à une seule IP qui ne peut être demandée que 3 fois par minute, quand j’active le plug-in, il n’y a aucun problème pour accéder normalement à la passerelle kong via l’IP, mais la couche supérieure du kong a toujours nginx comme charge, donc l’IP obtenue par kong est toujours l’IP privée de la machine nginx, de sorte que toutes les IP ne peuvent accéder à l’interface API que 3 fois par minute, aucune IP n’accède à l’interface 3 fois par minute.
Comme montré dans la figure ci-dessous, tant que l’interface est demandée 3 fois par minute, tous les visiteurs seront rejetés.
J’ai installé le plugin http-log pour enregistrer la requête et les informations correspondantes, afin que nous puissions les déboguer.
Puisque Kong n’obtient pas normalement client_ip adresse, comment puis-je corriger ce problème ?
Solution
Modifiez le fichier de configuration Kong,
/etc/kong/kong.conf文件,增加trusted_ips = 0.0.0.0/0,::/0
real_ip_header = X-Avancé-Pour
EnfinRedémarrer Kong, commande : Kong Redémarrer
trusted_ips
Définissez un bloc d’adresses IP de confiance connues pour envoyer le bon en-tête X-Forwarded-*. Les requêtes provenant d’IP de confiance font que Kong transmet son en-tête vers X-Forwarded-* en amont. Les requêtes non fiables font insérer Kong son propre en-tête X-Forwarded-*.
Cette propriété définit également la directive dans la configuration set_real_ip_fromNginx. Il accepte des valeurs du même type (blocs CIDR), mais des listes séparées par des virgules.
Faire confiance à tous / ! \IP, veuillez définir cette valeur à 0.0.0.0/0, ::/0.
Si unix : spécifie une valeur spéciale, tous les sockets de domaine UNIX seront fiables. Documentation de référence :https://docs.konghq.com/0.14.x/configuration/#trusted_ips
Après la modification, Kong peut obtenir correctement l’adresse IP du client, comme montré dans la figure ci-dessous :
(Fin)
|