我在一家公司工作,该公司的核心是向客户出售WordPress博客,每月收取费用,外加一些设计工作的预付款。老板设想,我们将有数千名客户,每个客户每月支付20欧元,所有这些都由一名正常工作时间的IT人员和几个销售人员/设计师来处理。
目前,我们在一台功能适中的托管服务器上安装了一个WordPress,就有大约500个活动博客。我们在SharDB上运行,因为MySQL不喜欢在同一个数据库中有20.000个表。由于服务器的管理界面(Plesk 11)不允许我们将多个数据库与一个数据库用户关联,因此对SharDB进行了修改,以便每个数据库使用其自己的单独连接和自己的用户凭据。
这会在管理员用户尝试执行任何操作时产生问题。管理接口调用get_blogs_of_user()
在每次页面加载时,它会依次连接到每个数据库以获取博客选项等。这意味着活动连接会被重复关闭并替换为不同的连接,这意味着单个页面调用会导致打开1.600个数据库连接(而普通用户为60个)。这严重降低了性能。
一种解决方案是拆分我们的WordPress安装。这将限制必要的数据库连接数量,从而加快速度。不幸的是,这也意味着我们必须分别管理每个WordPress安装。例如,由于我们没有对服务器的shell访问权限,因此我们必须通过FTP对文件进行任何更改,对每个WordPress安装重复该过程。
另一个解决方案是获得一个shell服务器并启动我们自己的MySQL安装,这样我们就可以避免每个用户一个DB的问题,但不幸的是,出于法律考虑,我们不能有任何非托管服务器,例如,如果宕机,我们需要能够将责任转移到托管提供商身上,而shell服务器不允许我们这样做。(推卸责任很重要,因为老板担心,如果我们的服务器坏了,而我们对此负责,我们的客户(主要是中小企业)会因业务损失而对我们提起巨额诉讼。这样,我们可以将责任转移到供应商身上,显然这让我们更安全。)
还有其他我忽略的选择吗?
这里是the limits 他们必须遵守:
必须可扩展。老板设想最终的客户群大约为20000人,这应该可以通过给定的解决方案(不包括额外的硬件购买等)获得不会花很多钱的。假设每个月约1欧元的percustomer就可以了
不能涉及自管理服务器。任何需要shell访问的东西都是不允许的。如果出现任何宕机,我们必须仍然能够责怪托管提供商必须能够由一个人管理。如果我们必须支付不止一名全职IT人员的费用,那么商业计划显然行不通必须仍然基于WordPress。我们无法将现有客户迁移到其他地方;他们已经够困惑的了。(Wedon’t actually market to the tech saving groups.)李>就是这样。