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