我在这里讨论了我们公司正在使用的一个场景,如果可能的话,我希望得到一些意见。
我们有一个网站的主要网址,称之为“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 更便宜。