数字海洋的WordPress服务器无法访问大规模CPU峰值后

我已经build立了一个数字海洋服务器来主办一个WordPress的网站。 我把它设置为基本的$ 10服务器,因为我不期望很多stream量。

设置后,我遵循数字海洋安全提示,并为我自己添加一个用户,并将自己设置为sudo-er。 我也以root身份禁用SSH访问。

我在数字海洋上看起来似乎是一个非常普遍的问题,MySQL正在给出一个内存不足的例外。 因此,我创build了一个4GB的交换文件,因为这似乎是补救措施,我从来没有看到这个错误。

几天前,我在网站上做了一些工作,准备发布。 我写了30个小博客文章,并添加了一个名为Yoast的插件。 我一夜之间离开了这个网站,在第二天的午餐时间里,我发现这个网站倒塌了。

在我重新启动服务器的网站最后10分钟左右,然后再次崩溃。 MySQL似乎占用了很多RAM,但是我没有收到我上次看到的数据库错误。

我甚至已经把服务器升级到了带有双倍内存的$ 20版本,但是没有什么区别。

在我完成安装Yoast并撰写博客之后,我也注意到了CPU使用率的一个荒谬的高峰:从那以后,这个站点一直不稳定。

CPU秒杀

虽然网站无法访问,但我仍然可以通过Digital Ocean网站上的Web控制台访问服务器。

该网站的时间不够长,无法获得我在WordPress上设置的内容的备份。 任何想法,我可以解决这个问题?

您没有发布任何错误日志或关于停机时间的其他准确信息,所以我现在只能通用了。

你启动任何服务器的那一刻,就会受到攻击。 这是在线生活的悲伤事实。 你还没有真正的stream量,但已经看到尖峰。 攻击探测器的典型标志。 用例如Fail2Ban来避开这些尝试。 阻止他们的SSHlogin尝试,阻止他们的WordPresslogin尝试,并禁止他们的IP几天。

接下来,如果你的Wordpress网站是相当静态的(最终用户不需要login),那么你应该看看caching。 对于静态页面,不应该有必要打MySQL。 我更喜欢Nginx的Wordfence的Falconcaching,但它也适用于Apache。

另外,在Monit的帮助下,让你的服务器更加自我修复。 很容易检查内存使用情况,并预防性地重新启动像MySQL或Web服务器这样的内存pipe理器。 或者当它closures时自动重新启动MySQL。

但是,真的,你应该激活和调查一些日志logging,扩大你的post有关你的webstack设置(MySQL版本,引擎,PHP版本,networking服务器等)的更多细节,并试图找出真正发生的事情。