Плагін для обмеження швидкості шлюзу Kong.
Встановіть чинні лімітні правила залежно від року, місяця, дня, години, хвилини та секунди, і одночасно діють кілька обмежень.
Наприклад, не більше 10 дзвінків на день, не більше 3 разів на хвилину.
Коли на хвилину більше 3 відвідувань, помилка повідомляється вже на четвертому разі.
Коли кількість відвідувань перевищує 10 разів на день, помилка буде зафіксована одинадцятий раз.
Сценарій: мені потрібно обмежити інтерфейс API однією IP, яку можна запитувати лише 3 рази на хвилину, коли я вмикаю плагін, немає проблем із нормальним доступом до шлюзу Kong через IP, але верхній рівень Kong все одно має навантаження на nginx, тому IP, отриманий Kong, завжди є приватною IP машини nginx, щоб усі IP могли звертатися до інтерфейсу лише 3 рази на хвилину, жодна IP не звертається до інтерфейсу 3 рази на хвилину.
Як показано на рисунку нижче, якщо інтерфейс запитується 3 рази на хвилину, усі відвідувачі будуть відхилені.
Я встановив плагін http-log, щоб записати запит і відповідну інформацію, щоб ми могли його налагодити.
Оскільки Kong не отримує client_ip адресу нормально, як я можу виправити цю проблему?
Рішення
Змінити конфігураційний файл kong,
/etc/kong/kong.conf文件,增加trusted_ips = 0.0.0.0/0,::/0
real_ip_header = X-Переадресовано-Для
НарештіПерезапуск Kong, команда: kong restart
trusted_ips
Визначте блок довірених IP-адрес, які відомі тим, що надсилають правильний заголовок X-Forwarded-*. Запити від довірених IP-адрес змушують Kong пересилати свій заголовок на X-Forwarded-* upstream. Недовірені запити змушують 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-адресу клієнта, як показано на рисунку нижче:
(Кінець)
|