我仍然有点新手,但现在我在AWS / EC2红帽机器。 我有:
就像是:
LB | ------- | | Web Web
那么现在如果我打算把2x Web Servers的1x Varnish面前:
请build议,并将它是这样的:
LB | [V] ------- | | Web Web
是吗?
所以在这里我的问题是:
LB已经不是很有用了(我想)。 请问Varnish会再次成为负载平衡器吗? 请指导我正确的安置和分享逻辑。
谢谢你这么。
ELB仍然可以达到以下目的:
所有这些都可以在没有ELB的情况下进行configuration,但是对于我来说,确实是在负载平衡器上处理SSL。 Varnish 将不会为您处理SSL,因此您可以让Load Balancer处理它,并将http与您的Varnish服务器通话。
有许多可用的configuration。 每种configuration都有一些你需要评估的优点和缺点(如性能,维护,设置的简便性,可扩展性等)。
对于Load Balancer,您可以使用Amazon的ELB和/或您自己的Nginx / HAProxy解决scheme。 您可以使用一个(或多个)Varnish服务器,这些服务器可以在自己的机器上,也可以在Web Tier的同一台服务器上安装和运行Varnish。
一个简单的设置将是清漆安装在Web服务器上。
LB | --------------- | | Web&Varnish Web&Varnish
虽然这有一个缺点,就是不能让你的网页独立于清漆,所以安装和理解的速度更快。 它也简化了你的架构。 这种方法可能适合你。 我想你会在某个时候超过这个,因为它有一些非常明显的可伸缩性问题。
正如ianjs所说,ELB在您的设置中仍然可以发挥作用……这一切都取决于您的需求(自动缩放,SSL端点,冗余等)。 看看别人如何面对类似的问题[1] [2]
同时,如果要利用Varnish作为caching,则需要将其放置在负载平衡器(如果有)和后端(如果涉及多个Varnish实例时使用一致散列[3]), ,但是当你想要水平缩放时,架构会变得相当复杂(HAProxy [4]有一个很好的例子)。
所以,如果你打算使用1个Varnish实例和2个后端(没有自动缩放,ssl而且没有Amazon的高级function),你可以保持简单,摆脱ELB:
Varnish | --------- | | Web1 Web2
但是你必须:
所以,您应该select最适合您需求的架构。
[1] https://stackoverflow.com/questions/14167561/using-an-aws-elb-behind-varnish-is-it-possible
[2] http://cloudreach.blogspot.com.au/2013/01/varnish-and-autoscaling-love-story.html
[3] http://en.wikipedia.org/wiki/Consistent_hashing
[4] http://blog.exceliance.fr/2012/08/25/haproxy-varnish-and-the-single-hostname-website/
[5] https://www.varnish-cache.org/docs/3.0/reference/vcl.html#directors
[6] https://www.varnish-cache.org/docs/3.0/reference/vcl.html#backend-probes