在两个位置之间平衡站点负载的正确方法

在两个位置之间平衡站点负载的正确方法

我在这里讨论了我们公司正在使用的一个场景,如果可能的话,我希望得到一些意见。

我们有一个网站的主要网址,称之为“http://www.site.com“。在成立初期,我们决定在两个物理数据中心之间实现负载平衡。当时,我们通过让网络设备返回 301 重定向到以下任一方式来实现”https://site1.site.com“ 或者 ”https://site2.site.com“。显然,这似乎对搜索引擎不太好,因为当您搜索网站时,您会在抓取时获得重定向的网站特定结果,而营销人员希望主 www.site.com 始终显示。我很好奇实施此类解决方案的正确方法是什么?

答案1

“这是通过让网络设备返回 301 重定向来实现的。”

我的朋友,这不是两个数据中心之间的负载平衡。这是一个位于其中一个数据中心的设备,用于重定向客户端。

您应该考虑在每个站点使用一个(或两个用于本地故障转移)负载均衡器,最好是可以更新 DNS 并具有 GeoIP 逻辑的负载均衡器(当您位于较大的地理距离时非常方便)。

我个人使用 KEMP 负载均衡器,并且强烈推荐它们: http://www.kemptechnologies.com/uk/server-load-balancing-appliances/geo-loadmaster/glm-overview.html

答案2

那么使用 DNS 负载共享怎么样?

www.site.com     1.1.1.1
www.site.com     1.1.1.2
www.site.com     1.1.1.3

答案3

“好”方法实现“全局服务器负载平衡”(GSLB)的方法是多个数据中心(DC),每个数据中心都有边缘路由器通告相同的 IP 地址范围,使用 BGP 选择最短路径——又称 Anycast

更便宜的版本通常在每个位置都使用相同的负载均衡器设备 (LB),并附加一个“GSLB”插件,LB 会交换心跳,并且使用 DNS“技巧”进行故障转移(因为缺乏更好的词语)。

我谨建议您协商取消多数据中心要求,或者至少确保为认真努力提供资金。良好的多数据中心部署并不容易建立,并且需要在设备(路由器)和专业知识方面进行大量的前期投资。复制数据库和更改数据集通常非常困难。

一个可能的解决办法可能是亚马逊弹性负载均衡器(ELB)以及迁移到 Amazon EC2。ELB 有一些跨越多个 Amazon“可用区域”的规定,与 DIY 多数据中心故障转移相比,EC2+ELB 更便宜。

答案4

如果你有钱,我会考虑实施类似思科全球支持系统F5 通用技术指标在两个站点上,并将 DNS 委托给他们。

本质上,它的工作原理是将您对 www.site.com 的 A 记录指向 GNS/GTM,而您又已使用 Web 服务器的 IP 地址或其 VIP 地址及其位置对其进行了配置。当客户端对 www.site.com 进行 DNS 查找时,GSS/GTM 将返回相应服务器/VIP 的 IP 地址。

负载平衡可以通过循环方式、地理位置、性能指标或负载或通过活动数据中心和 DR 数据中心来完成 - 基本上所有适用于负载平衡的相同原理。

相关内容