有没有理由不在许多小型网站前面使用软件负载平衡器/代理来进行管理。我在一家网页设计机构工作,我们大概有 30-40 个中小型网站供客户使用。
我的想法是使用一个强大的虚拟服务器并将所有域名指向该服务器,然后软件负载平衡器会将请求路由到后台的众多(15+)虚拟服务器之一。
我能看到的好处是:
- 轻松升级并将网站移动到不同的服务器
- 可以将繁忙的站点分散到多个服务器
- 轻松关闭服务器进行维护,同时向访问者显示一条好消息
- 可以为每个网站设置一个后备页面(当网站出现 404 错误时,每个客户都会获得带有徽标和联系方式的 HTML 文件)
缺点是:
- 单点故障是负载均衡器
- 复杂
这是一个好主意还是一个糟糕的主意?
答案1
您描述的不是负载均衡器,而是反向代理。负载均衡器是一种特殊类型的反向代理(嗯,大多数都是)。
复杂性实际上并不是什么大问题,只要确保您的反向代理添加了一个X-Forwarded-For
标头,并且您的客户端软件尊重该标头(否则您的所有分析都将填充您的代理的 IP 地址)。
SPOF 令人担忧,但如果您的客户站点只在单个主机上运行,那么无论如何您都会有 SPOF,因此您在此处添加的 SPOF 当然需要考虑,但您必须结合上下文来看待一切。
此外,这个反向代理不需要是一台强大的机器。Nginx 应该能够在很少的硬件上运行 25 个站点的反向代理。
答案2
设置 2 * HAProxy 实例作为主/从对。
或者为什么不直接使用 Amazon Route 53?
它便宜、快速、透明并且有健康检查。
当应用程序聚集在多台服务器上时,负载平衡器最有效。