我正在为我们的Web应用程序规划一个新的基础设施 我们有两台运行在集群中的JBossAS5服务器。 会话状态将通过JBoss Cache进行复制。
在这之前,应该有一些caching,来加速静态元素的传递。 但是,我们的应用程序的大部分stream量将通过HTTPS。
到目前为止,我一直在考虑在JBossAS之前使用两个Varnishcaching,每个都被configuration为通过循环方式对两个JBossAS进行负载平衡。 由于Varnish不处理HTTPS,因此在Varnish前面需要两磅代理,处理HTTPS。 Heartbeat / LinuxHA将提供两磅的高可用性。
到www.example.com的stream量将通过我们的防火墙,从那里到虚拟的IP,从那里到清漆,从那里到JBossAS。
问题1:这是否有意义? 还是它太复杂了,用更简单的方法可以达到同样的目标?
问题2:如果我的布局很好,我怎么configuration英镑 – >清漆步骤? 我应该a)通过Heartbeat / LinuxHA提高Varnish服务的可用性,并将stream量从磅数转移到Varnishs的虚拟IP上,或者我更愿意b)configuration两个独立的Varnish并使用英镑负载平衡来解决不同的清漆?
不幸的是,获得硬件负载平衡不是一个select,因为成本。 这不是一个公司,而是一个非政府组织系统,而且我们总是缺钱…整个事情不是关键任务,但我希望它尽可能可靠,因为我们的IT并不总是可用的在短时间内(我们没有任何全职IT人员)。
非常感谢您的洞察力!
安德烈亚斯。
我认为你的方法是有道理的。 如果你不需要高级cachingdynamic对象,那么我build议使用nginx作为它的caching,HTTPS和负载平衡的能力。 我喜欢清漆,我认为大多数网站可以通过使用它获得很多,但根据您的信息,使用nginx(+心跳,或鲤鱼)会更有意义。
祝你好运! 🙂
我想说的解决schemebuild议是过度工程。 有各种技术将适合您的情况。
我使用LVS进行负载均衡,并使用SQUID进行caching,尤其是关于Jboss。 对于静态内容,从Apache服务通常会更好。 这些技术仍然可以使用心跳或起搏器进行冗余。
我使用SQUID的主要原因是重写,但我处理的很多内容都是dynamic的。 caching是一个奖金。 我的大多数Java应用程序几乎没有静态内容,所以我经常跳过mod_jk部分。 问题是,你的要求可以彻底简化我提出的解决scheme。
一个可能的例子:
NAT到SQUID(ha集群 – > SQUID透明地代理LVS VIP – > LVS VIP到Apache集群 – > mod_jk到Jboss
有没有原因你不想使用硬件负载平衡器?
既然你描述了一个高可用性devise,我猜这是一个任务关键和可能的高stream量网站。 因此,您可能有这样的一个或多个设备的预算来在该层提供HA。
像F5 BigIP这样的设备将为您提供比英镑更多的function和可靠性。 您将能够执行ssl卸载来处理https以及caching和压缩。
增加更多的图层肯定会使维护更加困难,但是我认为基本方法没有任何问题。 我首先想到的是,Squid做你想要的cachinghttp和https连接。 我在照片托pipe网站上成功使用了4年左右。
鱿鱼在这里: http : //www.squid-cache.org/ 。 显然有一些性能方面的考虑: http : //deserialized.com/reverse-proxy-performance-varnish-vs-squid-part-2/ ,但是也许这些缺点被https的支持所抵消。