Nginx 作为 GeoIP 全局负载均衡器以及与应用服务器的实际距离

Nginx 作为 GeoIP 全局负载均衡器以及与应用服务器的实际距离

我的客户正在使用 Magento 作为其电子商务全球解决方案。主要国家是美国/欧盟/中国。目前意大利只有 1 个 VM,服务于所有流量。

我想在 AWS 或 Google Cloud 上创建 3 个虚拟机,每个国家/地区一个,但这在现阶段并不重要。

缅因州 DNS 1.2.3.4 应该指向 www.mydomain.it ,其中 1.2.3.4 是配置了 MaxMind GeoIP 模块的 nginx VM(位于欧洲数据中心)。

这是因为网站有多种语言和每个国家/地区的多个目录/价格/数量,并且通过 nginx 我可以将必要的标题和变量传递给 Magento,以便 cms 知道向来自不同国家/地区的客户显示哪种语言。

我的问题是:当流量到达 nginx vm 时,它会通过 proxy_pass 到达例如美国服务器,美国服务器是否会真正服务于美国流量,或者美国流量将始终通过 nginx VM 流动,因此它会滞后并变慢?

我的目标是根据访问者所在国家/地区将流量转发到相应的 VM,因此该 VM 将负责处理流量,而不是 nginx VM

答案1

如果你读了这个问题的第一个答案https://stackoverflow.com/questions/25678049/how-to-setup-global-load-balancing-using-digital-ocean-dns-and-nginx您将看到实现此目的的几种方法,30x 重定向、Anycast(利用 BGP 路由)和 Geo-DNS。Route53(由@frederico-sierra 提及)本身是不够的,您必须添加 CloudFront。

相关内容