Я не знаю, как это сделать с ASP. NET Core, но, как указано в документах ниже, вы сможете сделать это на уровне входа.
Kubernetes ingress
Есть документация об этом в kubernetes ingress .
Ограничение скорости
Эти аннотации определяют ограничения на соединения и скорости передачи. Их можно использовать для смягчения DDoS-атак .
nginx .ingress.kubernetes.io / limit-connections: количество одновременных подключений, разрешенных с одного IP-адреса. При превышении этого лимита возвращается ошибка 503.
nginx .ingress.kubernetes.io / limit-rps: количество запросов, принимаемых с данного IP-адреса каждую секунду. Предел пакетной передачи установлен в 5 раз больше предела. Когда клиенты превышают этот лимит, возвращается limit-req-status-code default: 503.
nginx .ingress.kubernetes.io / limit-rpm: количество запросов, принятых от заданный IP каждую минуту. Предел пакетной передачи установлен в 5 раз больше предела. Когда клиенты превышают этот лимит, возвращается limit-req-status-code default: 503.
nginx .ingress.kubernetes.io / limit-rate-after: начальное количество килобайт, после чего дальнейшая передача ответа на данное соединение будет ограничена по скорости. Эта функция должна использоваться с включенной буферизацией прокси .
nginx .ingress.kubernetes.io / limit-rate: количество килобайт в секунду, разрешенное для отправки на данное соединение. Нулевое значение отключает ограничение скорости. Эта функция должна использоваться с включенной буферизацией прокси .
nginx .ingress.kubernetes.io / limit-whitelist: диапазоны источников IP-адресов клиентов, которые необходимо исключить из ограничения скорости. Значение представляет собой список CIDR, разделенных запятыми. Если вы укажете несколько аннотаций в одном правиле Ingress, ограничения применяются в следующем порядке: limit-connections, limit-rpm, limit-rps.
Чтобы настроить глобальные настройки для всех правил Ingress, limit-rate-after и значения предельной скорости могут быть установлены в NGINX ConfigMap . Значение, установленное в аннотации Ingress, переопределит глобальную настройку.
IP-адрес клиента будет установлен на основе использования протокола PROXY или из значения заголовка X-Forwarded-For, когда use-forwarded-headers включен.
Существует средний учебник об ограничении скорости для ваших приложений Kubernetes с входом Kubernetes.
Nginx вход
Есть документация об этом nginx вход .
Если вы не понимаете, почему я упомянул как kubernetes, так и nginx ingress, посмотрите здесь
Есть два популярных контроллера Kubernetes Ingress, которые используют NGINX - оба с открытым исходным кодом и размещен на GitHub. Один поддерживается сообществом открытого исходного кода Kubernetes (kubernetes / ingress- nginx на GitHub), а другой поддерживается NGINX, In c. (nginxinc / kubernetes-ingress на GitHub)
Надеюсь, вы найдете это полезным.