大型 Drupal 站点的服务器群设置

大型 Drupal 站点的服务器群设置

我正在建立一个大型 Drupal (Pressflow) 网站,这是我目前的计划。我是否做了什么愚蠢的事情?有没有人有托管像这样的大型多服务器 Drupal 安装的经验?

基础设施

答案1

我很想在 HAProxy 后面设置一对 Varnish 节点来提供 HA Varnish 集群。

您可以轻松地单独拥有 2 个以上的 Varnish 节点,而无需 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。

我建议在负载平衡器盒上使用英特尔服务器网卡,并使用思科或 HP Procurve 交换机作为网络核心。

您的数据库节点应为快速多处理器服务器,并配备 15k SAS 磁盘以提高速度。为实现冗余,请将 4 个以上磁盘放入 RAID10 阵列中。

我不建议在共享托管环境中这样做。专用服务器可能没问题,但为了安心,我会在运营商中立的数据中心指定 1/4 机架。这样,您可以获得最大的服务器实际配置和管理自由。

添加:

你真的需要运行 apache 吗?

对于托管无 cookie 域上的媒体文件的服务器,您最好从轻量级 HTTP 服务器托管这些文件,Nginx 是此方面的绝佳解决方案。Apache 可能更适合托管 Drupal 本身,但没有理由不能使用 Nginx 和 FastCGI。

答案2

值得一提的是,如果您计划使用 https,则需要在负载均衡器前面安装一些东西来处理 https 连接。我不确定 varnish 是否可以处理这个问题,但我建议使用 nginx 或 stunnel 来完成这项工作。

答案3

我可以问一下您打算如何实现单独的文件服务器吗?这是我真正想要的,但标准 srupal 似乎不支持这一点。

相关内容