我们正在使用以前专属于我们业务的功能性网络软件,并引入许可选项,以便其他企业可以使用它。
在两种方法之间进行选择时应考虑哪些因素:
该软件基于PHP。我们打算提供多个套餐。由于通过预定的cron作业进行大量处理,服务器负载随着每个许可证的使用量增加而呈二次方增长。
更新:尽管唯一的答案表明我们不应该这样做,但我们仍然倾向于修改代码以允许多个用户。有没有人有任何意见?
更新2:出于安全原因,我们再次将我们的位置更改为多实例解决方案。
答案 0 :(得分:3)
在过去几个月里我自己完成了这项工作,我的建议是 不要做我们做的 ,这是修改代码以允许多个用户。原来这是一个兔子洞,并将介绍:
如果我们可以再做一次,我们的方法就是:
将每个客户端放在子域(甚至允许它们提供自己的完整域名),允许您为每个客户端分别拥有一个apache虚拟主机。购买cPanel之类的许可证值得认真考虑,并研究如何自动化或半自动化创建新帐户。
为每个客户提供单独的数据库。每个都有不同的数据库密码。这将提供出色的安全性和出色的性能(所有数据库(及其表格)都很小)。
由您决定是否应在所有这些客户端之间共享实际的php源代码,或者为每个客户端分配一个单独的副本。文件的全局目录是完全合理的,并且可以使更新变得容易,而单独的副本将使定制更容易。也许混合动力是正确的方法。
有一天,我们甚至可能最终撕掉过去六个月里完成的大部分工作,再次采用这种方法。
乍一看似乎这会增加服务器负载,但实际上如果你有足够的客户端来加载甚至是一个考虑因素,那么你将希望能够在多个服务器之间传播客户端。如果隔离良好,那就是小菜一碟。