在服务器端受限的情况下,高效地管理大量博客

时间:2014-09-01 作者:Tim Okrongli

我在一家公司工作,该公司的核心是向客户出售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人,这应该可以通过给定的解决方案(不包括额外的硬件购买等)获得

  • 不能涉及自管理服务器。任何需要shell访问的东西都是不允许的。如果出现任何宕机,我们必须仍然能够责怪托管提供商必须仍然基于WordPress。我们无法将现有客户迁移到其他地方;他们已经够困惑的了。(Wedon’t actually market to the tech saving groups.)就是这样。

  • 1 个回复
    SO网友:Elisha Terada

    您似乎已经有了一个潜在忽视问题的答案:git推送。只需几个命令,git就可以跨多个服务器推送代码库,而不需要shell访问。有很多服务器不是自我管理的,并且禁止shell访问,但仍然允许您通过git管理代码。

    结束

    相关推荐

    Multisite and plugins options

    我需要更多关于get_site_option(), update_site_option() 和add_site_option().在codex中,他们说它与单次安装相同,只是在多站点中,它返回网络范围的选项。好吧,但我对这一点感到困惑:这是否意味着一旦设置了网络范围选项,所有站点的选项都是相同的?还是每个站点都会覆盖它?我的意思是如果我这样做: update_site_option(\'option_group\', \'default_options());// default_options() r