2009-07-08 83 views
2

我有一个专用的服务器,我需要为我的客户构建我的个人PHP5 CMS的新版本。撇开我是否应该考虑使用开源的问题,我需要你对CMS架构的看法。构建CMS架构 - 是否集中

第一种方法(因为服务器完全在我的控制下)是构建一个集中式系统,可以从单个管理面板支持多个站点。基本思想是我可以以超级用户的身份登录,创建新的站点(从技术上讲,它可以创建新的Web根目录和新的数据库,或者其他一些东西),为特定客户分配模块和插件,或者开发新的站点需要。如果客户登录此面板,他/她只能看到并且只能管理他们的网站内容。

我见过这样的系统(这是自定义生成),这是非常不错的bug修复和新功能,瞬间影响到所有的客户,而不需要修补每CMS的也可以是其他的托管服务器上...

我可以看到的负面影响是可伸缩性 - 如果我需要添加第二台服务器,如何合并它们以维护单个内核。

第二个是古典 - 独立的CMS为每个客户。

你会走什么路,为什么?

谢谢你的时间。

回答

2

如果您有一个适用于所有客户端的中央系统,可扩展性会变得更容易。您可以拥有一台大型数据库服务器和多台相同的Web服务器(可能位于负载平衡器后面),这样您就不必担心将客户端分成不同的服务器。你的资源被集中起来,所以如果一个客户有一天的流量很大,它可以被多台服务器占用,而不是把一台服务器(和所有其他客户的站点)带到它的膝盖上。

通过在负载平衡配置中使用'sticky sessions',或者让PHP将数据存储到所有服务器(例如数据库)可以访问的地方,您可以通过多个服务器获得PHP会话。

保持Web应用程序文件同步到一个代码库不应该太困难,有像你可以用来帮助你的rsync的工具。

1

这确实取决于网站的类型。也就是说,我建议您考虑使用版本控制软件来管理多个安装。实际上,这可以给你和集中式方法一样,但它可以让你自由推迟更新单个(或多个)网站。

+0

+1 - 如果你有一个可扩展的系统和一堆每站点自定义代码,那么就有一个折衷。你可以做一次修复,并在整个过程中传播,但是在部署之前你必须对所有事情进行测试。 – 2009-07-09 17:05:45