解决方法
您可以轻松地单独使用2个清单节点,而无需HAProxy,但是您只能对HTTP流量进行负载平衡.至少在HAProxy上,你也有一个TCP负载均衡器.
您建议您的网络边缘是什么样的?您是否计划拥有一对HA硬件防火墙?您需要边缘路由,BGP和多个转换吗?
另一件需要考虑的事情是文件服务器的工作原理.您可能会因使用GlusterFS或MogileFS等存储服务器而拥有一对文件服务器而受益.这样,您就可以确保整个基础架构的冗余.
添加多个Memcached节点也很简单,为您提供更多的冗余和弹性,以防止流量高峰和硬件故障.
确保您采取措施优化内容的前端交付,尤其是在预计流量较高的情况下.将所有媒体保留在媒体域中,理想情况下是无cookie的媒体域,例如http://blog.stackoverflow.com/2009/08/a-few-speed-improvements/使用sstatic.net
您可能还需要考虑使用CDN来缓存静态内容,例如CSS和不变的JS.这种多级缓存基础架构可以平滑slashdot效果,并且还可以为您提供更大的故障恢复能力.
这是因为如此大比例的浏览器请求是针对静态内容的,这可以从最靠近请求者的CDN的PoP有效地提供.在多个层(浏览器,CDN,Varnish,Memcache)上缓存的另一个好处是,经过一段时间后,所有内容都会在多个位置缓存多次.这为您提供了抵御故障的能力.
一个大型的drupal网站与大型网站没什么区别.只需确保在网络的每一层都有多级冗余.
至于实际服务器的规格,你可能想要在varnish节点上使用> 8G ram.
我建议在负载平衡器盒上安装英特尔服务器NIC,并在网络核心上使用思科或HP Procurve交换机.
您的数据库节点应该是具有15k SAS磁盘的快速多处理器服务器,以提高速度.为了实现冗余,请将4个磁盘放入RAID10阵列.
我不建议在共享托管环境中执行此操作.专用服务器可能没问题,但出于谨慎的考虑,我将在操作符中立数据中心中指定1/4机架.这样,您可以最自由地进行服务器的实际配置和管理.
添加:
你真的需要运行apache吗?
对于在无cookie域上托管媒体文件的服务器,您可能最好从较轻的HTTP服务器托管这些服务器,Nginx是一个很棒的解决方案.Apache可能更适合托管Drupal本身,但没有真正的理由你不能使用Nginx和FastCGI.