我们目前有大约 10-15 个不同的网站,这些网站目前托管在两台配备 4GB RAM 的 Rackspace 云服务器上。这两台服务器完全独立,我们为每个新网站随机选择一台服务器。
我们最近推出了一个新网站,它占用大量内存,自上线以来已多次耗尽服务器内存,导致网站崩溃。我正在研究网站本身的问题。但我认为我可以在服务器架构方面做很多事情。有两件显而易见的事情我可以做...设置 Varnish 缓存(我们拥有的网站类型将从中受益匪浅)。并在两台服务器之间设置负载平衡。
因此,我建议我们获得一个新的云实例。现在我的问题是如何使用它...
1) 将其设置为另一台 LAMP 服务器,并从 Rackspace 获取负载平衡器(非常便宜)以在三者之间实现负载平衡。每台服务器都运行各自版本的 Varnish 来缓存网站。
2) 将新的盒子设置为 Varnish 缓存层,并让 Varnish 在我们当前拥有的两者之间进行负载平衡。
我非常喜欢方案 2,因为所有缓存都会在一个地方进行。我们还可以在 Varnish 中做一些很酷的事情,比如让它在所有服务器都宕机时提供缓存页面,并且通常具有更大的控制权。大多数网站访问者都是匿名的,因此可以使用缓存网站。大多数登录用户都是编辑人员,因此优先考虑高可用性更为重要。
但是,就最大限度地利用可用资源而言,我不确定最好的做法是什么。
答案1
选择选项 2,然后使用执行以下操作的机架空间负载均衡器:
- 如果 varnish 缓存已启动并处于活动状态,则将所有流量导向 varnish 实例
- 如果 varnish 宕机,则在剩下的两个 Web 服务器之间进行负载平衡
这可以防止您构建单点故障,但您需要在负载均衡器配置中进行可靠的健康检查。