通过多个数据中心限制用户

我试图在nginx上实现一个节streamfunction,跨多个数据中心跨多个服务器共享。 我想知道什么是build设这个最好的做法。

例如,假设我有一个HTTP API运行在位于两个不同数据中心的两个服务器集群(负载均衡器后面)上。 我想通过他的api-key将开发人员压缩到每小时1000个请求。 开发人员已经构build了一个移动应用程序,这意味着取决于他的最终用户的位置,请求将由两个位置(最近的数据中心)服务器。

你将如何在这个特定的情况下执行限制?

最简单的方法是分别在N个数据中心的每一个中实施节stream。 在你的情况下,M = 1000个请求/小时,N = 2个数据中心。 所以,只需使用M / N = 500作为油门值。

请参阅: NGINX – 节stream请求以防止滥用