我们是一家运营一个网站的公司,每个月有80万独立访客,增长率为35-40%。 我们刚刚从一台服务器转移到一个专用的mysql数据库和一台nginx +乘客前端服务器。 一段时间后我们遇到了下一个瓶颈,并且正在考虑通过增加一个负载均衡的前端服务器解决scheme(我们测量字体结束是瓶颈)水平扩展。 这些文件显然位于我们现在的单个前端服务器上。
保留2台前端服务器之间同步的站点文件的最佳select是什么? 我GOOGLE了很多,有人推荐“rsync”。 我遇到的唯一问题是当cron作业没有运行一段时间的时候你会得到的差距。 我们的内容经常更新,我们会在首页进行推广。 另一个解决scheme似乎是NFS,并将文件安装到第二个前端服务器。 这个解决scheme的任何问题? 任何build议是受欢迎的。
我们使用复制的文件系统AFS运行共享Web主机,并且对我们来说运行起来相当不错(对于“相当好”的某些定义)。需要注意的是:
运行networking文件系统服务器是一项非常重要的系统pipe理工作, 特别是如果您想做得更好(例如,复制文件服务器以获得高可用性)。
你失去了执行某些文件系统操作的能力(例如,精细的locking和手表)。如果你有一个非常普通的网站,这不是一个问题,但需要注意的是(我们当然受到了缺less一个inotify,重新加载FastCGI应用程序)。
如果您正在使用基于文件的会话处理,则需要确保您将会话粘贴到一台服务器上,或者确保这些会话得到复制。 这更像是“现在我有多个前端服务器”,而不是networking文件系统问题。
仔细调整caching参数。 他们可以制作或打破你的应用程序。
NFS的安全模型是非常愚蠢的,所以你可能想通过一个安全的后端networking路由它。
显然,当你这样做的时候,复杂性会增加很多。 祝你好运。