Я пытаюсь реализовать функцию дросселирования на nginx, которая используется на нескольких серверах в нескольких центрах обработки данных. Я хотел бы знать, что было бы лучше всего для этого.
Например, предположим, что у меня есть HTTP API, работающий на двух кластерах серверов (за балансировщиком нагрузки), расположенных в двух разных центрах обработки данных. Я бы хотел задушить разработчика его api-ключом до 1000 запросов / час. Разработчик создал мобильное приложение, что означает, что в зависимости от того, где находятся его конечные пользователи, запросы будут отправляться на сервер в обоих местах (ближайший центр обработки данных).
Как бы вы усилили дросселирование в этом конкретном сценарии?
Самый простой способ - реализовать дросселирование в каждом из N центров обработки данных отдельно. В вашем случае M = 1000 запросов / час и N = 2 дата-центра. Итак, просто используйте M / N = 500 в качестве значения газа.
Видеть: NGINX - дросселирование запросов для предотвращения злоупотреблений