linux – 扩展服务器群集设置

我正在重建一个网站,目前每个月大约有4百万访客(而且最近会直接上升).它目前由外部公司运营和托管,但我们正在抛弃它们,所以我需要设计托管.

我正在考虑构建一个小集群(可能在Linode上):

>一个Linode NodeBalancer,用于平衡应用服务器之间的负载.它可以将来自特定客户端的所有流量保持到一个应用服务器,但WP通过cookie处理会话,因此不那么重要.
>两个(或更多)应用服务器 – Linode(512?)VPS运行Debian6 / Apache2 / PHP5 / WordPress,但是nginx for caching.
>一个MySQL(或MariaDB?)数据库服务器(同样是一个VPS),也许是HyperDB的奴隶.
>开发是在一个普通的旧FBSD / Apache2 / MySQL / PHP5内部完成的,部署只会将新代码一次推送到所有应用服务器,并且任何数据库都会更改为数据库服务器.
>备份将存储在本地.我们可以在低流量时备份一个应用服务器(它们应该是相同的?)以保持负载.
>电子邮件通过MailChimp处理.简单.

WP本身正在运行带有Xcache的W3 Total Cache,我正在考虑用于图像和其他静态文件的CDN,缓存头已经被用于那些静态文件……

计划是,随着我们的扩展,我可以根据需要添加更多的应用程序和/或数据库服务器.

简而言之:这个设置会起作用吗?会有效吗?我以前从未建造过这样的东西,所以我想确保我没有错过任何东西.

仅供参考:这是一个新闻网站.我们在几个部分,一些媒体上发表文章,访问者可以评论文章,注册我们的电子邮件列表等.

解决方法

我正在设置类似于您与其他公司的东西.我不一定会评论Linode是如何工作的,但是想要突出我在查看VPS时遇到的一些事情:

>我不知道linode的负载平衡器的成本,但我发现我喜欢控制运行HAProxy或NGINX的通用VPS的配置以实现负载平衡(我选择了HAproxy).
>确保您有足够的RAM.不幸的是,到目前为止我发现的公开产品不允许你调整RAM和HDD的数量(我需要更多的RAM,但不是那么多HDD.哦,好吧).
>确保您的VPS持久.如果关闭或硬件故障,您不希望丢失在VPS上运行的数据(特别是对于MySQL). This is MySQL’s documentation for EC2,但有些相同的概念适用).
>一定要确保将MySQl复制到其他服务器,甚至是多个从属服务器.不想丢失数据.
>一定要确保将备份检索到非现场服务器.
>如果要部署到多个负载平衡的服务器(2个或更多应用服务器),请使用备份rsync的“主”服务器来更新代码.这简化了你的dev-push进程(采用master out out of load balance方案,确保slave不与旧master进行rsync,将代码推送到master,确保一切正常工作,将rsyncing从master转为slaves,然后将master添加回loadbalance方案).

我相信还有更多,但问题中概述的设置似乎很好.

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...