根据用户的位置将用户重定向到最近的服务器,而无需更改 url

标签 redirect geolocation dns load-balancing

这是我的情况:

我在美国和欧洲有 6 台服务器。所有服务器都在负载平衡器上。当您访问该网站 (www.example.com) 时,它指向负载均衡器的 IP 地址,并且您将被重定向到其中一台服务器。目前,如果您从德国访问该网站,您将被随机转移到其中一台服务器中。您可以转移到德国服务器或旧金山服务器。

我正在寻找一种根据用户的位置将用户重定向到最近的服务器但不更改 url 的方法。所以我是不是 寻找有许多网址,例如 www.example.com、www.example.co.uk、www.example.dk 等

我正在寻找类似 CDN 的东西,您可以在其中从最近的服务器检索文件 (?),这样我就可以摆脱负载平衡器,因为如果它崩溃,网站就不会响应 (?)

例如:

如果您来自英国,请重定向到 IP 53.235.xx.xxx
如果您来自我们西部,请重定向到 IP ....
如果您来自南欧,请重定向到 IP ...等

DNSMadeeasy 提供了与此类似的功能,但他们收取 600 美元的预付费用,并且对于不知道该功能是否能按预期工作或没有我们负担不起的试用版的初创公司:http://www.dnsmadeeasy.com/enterprise-dns/global-traffic-director/

这样做的另一种方法是什么?

关于当前设置的另一个问题。即使有 6 台服务器都连接到负载均衡器,如果负载均衡器出现延迟问题,它会带走所有东西,对吗?或者如果由于任何更改而出现故障,该网站将不会响应。那么消除停机时间的最佳方法是什么,以便如果一个服务器 IP 地址没有响应,请转到下一个(就像负载均衡器会做的那样,但负载均衡器本身可能会出现问题)

最佳答案

有助于了解您所谈论的应用服务器类型;即 J2EE(如 JBoss/Tomcat)、IIS 等?

您可以使用带有粘性 IP 的硬件或软件负载平衡器,并定义 IP 范围以坚持不同的应用程序服务器。每个国家/地区的 ISP 都应该拥有自己的 IP 块。

下面的网站上有一个列表。

http://www.nirsoft.net/countryip/

这也是一篇关于负载平衡的非常非常好的文章,其中解决了许多高可用性/持久性问题。这应该可以回答您关于负载均衡器单点故障的第二个问题;有许多不同的技术可以同时提供高可用性和负载分配。很大程度上取决于您运行的应用程序类型以及您是否需要持久 session 。通过粘性 IP 进行负载平衡,如果不需要持久性并且您的 LB 正确进行了健康检查,则可以通过轻松的故障转移提供高可用性。缺点是负载分布不均匀,但您似乎正在寻找基于接近度而不是负载的分布。

http://1wt.eu/articles/2006_lb/index.html

关于根据用户的位置将用户重定向到最近的服务器,而无需更改 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9138598/

相关文章:

重定向后PHP session 丢失

sql - SphinxQL 中的 SetGeoAnchor

Java InetAddress 名称解析

http - DNS 查找时间和 Windows DNS 缓存

html - 创建一个指向非 80 端口的 IP 的域名

.htaccess - 仅在主页上将 http 重定向到 https

tomcat - 从我的域的任何 HTTP url HTTPS 重定向

python - 在 Django Python 中将一个 View 重定向到另一个 View

javascript - Node.js:如何处理在字典中查找具有相同名称的不同城市?

c# - C# 的纬度和经度边界框?