我怎样才能用 nginx 实现这种平衡方案?

我怎样才能用 nginx 实现这种平衡方案?

我不是网络专家,但我很好奇是否有可能在 nginx 的帮助下创建这样的方案?主要目的是将客户端真实 IP 地址隐藏在代理层后面,其中每个代理节点都有自己的 IP 地址,负载均衡器 (LB) 使用“循环”规则平衡请求。在我的情况下,客户端是某个应用程序,我想要。所需的场景如下:

客户端(应用程序)向 some.api.com 发出 http 请求,LB 拦截该请求并将其发送到其中一个节点(例如代理 1),代理 1 接收该请求并将其重新发送到 some.api.com 并发回响应。使用这种方法,我想避免 some.api.com 中存在的速率限制。可以做到吗?

在此处输入图片描述

答案1

这种方案称为正向代理,即代理出站请求,与反向代理(代理入站请求)形成对比。这是可能的,也很容易做到,但在速率限制的背景下,至少有 3 个问题反对它,两个是技术问题,一个是政策问题——

  1. 大多数速率限制是通过 API 密钥应用的,而不是通过 IP 地址应用的(尽管 IP 速率限制是一种常见的低级防御措施)。如果你正在使用经过身份验证的 API,那么无论 IP 如何,你的请求都将被聚合在一起

  2. 公共 IP 很少,NAT(网络地址转换)很常见。您可能会构建一个正向代理负载平衡方案,结果却发现您的代理正在被某个下游基础设施进行 NAT 处理(所有代理在出站请求时都分配一个公共客户端 IP)

  3. 政策问题是 - 不要无视提供商的速率限制。如果您有业务需要更多容量,请与提供商交谈并向他们付费,或者如果您负担不起,请解释并与他们达成协议。

相关内容