跨多个数据中心限制用户

跨多个数据中心限制用户

我正在尝试在 nginx 上实现一个节流功能,该功能在多个数据中心的多个服务器之间共享。我想知道构建此功能的最佳实践是什么。

例如,假设我在两个不同的数据中心的两个服务器集群(负载均衡器后面)上运行 HTTP API。我想通过开发人员的 API 密钥将请求限制为每小时 1000 个。开发人员构建了一个移动应用程序,这意味着根据最终用户的位置,请求将由两个位置(最近的数据中心)提供服务。

在这种特定情况下,您将如何实施限制?

答案1

最简单的方法是分别在 N 个数据中心实施节流。在您的例子中,M=1000 个请求/小时,N=2 个数据中心。因此,只需使用 M/N=500 作为节流值即可。

看:NGINX - 限制请求以防止滥用

相关内容