倒退从前

MYSQL

前阵子因为受到攻击的问题,博客虽没大碍,但资源消耗大增。某日查看账单时无意中发现大量的资源消耗在了MYSQL查询上,而且全部都是价格昂贵的主库查询,价格低廉的从库查询次数居然是零!

印象中自己用过的WordPress for SAE版本都有标注支持主从分离,以便降低资源消耗。平常消耗不高的时候我从未留意数据查询这块是不是真的主从分离了,到这非常时期消耗大增时,矛盾才得以暴露,原来我一直都在用的价格高昂的主库读写数据,低廉经济的从库从未享受过……这是怎么回事?

虽然防火墙替我当掉了一部分攻击,资源消耗也降到了之前合理的水平,但博客本身不赚钱,昂贵的主数据库终究不能一直用下去,能省则省,我抽空进行了代码排查。首先从最基础的“wp-config.php”配置文件开始,发现所有的WordPress for SAE版本对应的配置文件都写有数据库分离配置。可为啥没有效果?看看后台设置貌似也没有专门的主从分离开关,难道是代码错了?

网上所有的代码都差不多的,自己试着修改了几次代码依旧无果,我开始怀疑SAE是不是在跟我开玩笑,想来也不至于,最后搜索出一篇技术文章提到了WordPress for SAE的弊端,上面说到要去掉主从分离,除了注释掉“wp-config.php”配置文件里边对应的代码以外,还要将wp-includes目录下另一个名叫”wp-db.php”的文件替换回来。OK,原来主从分离除了配置文件以外,还需要”wp-db.php”这小玩意,关键就应该在这里了。

果不出我所料,自己所用的WordPress for SAE 4.1版本中对应的”wp-db.php”文件与官方相同版本的文件毫无差异,我还指望升级解决,可后来发现网上另一位大神给出的最新WordPress for SAE 4.2.2中的”wp-db.php”也跟原版相同,网上WordPress for SAE版本普遍都是“wp-config.php”配置文件里边有主从分离的代码,但实际都没有通过修改”wp-db.php”真正实现数据库主从分离。唯有SAE官方应用仓库中的WordPress for SAE 3.4.1,或则WordPress for SAE官方博客中提供的3.5.2版才有完整修改,而这些WordPress for SAE版本都显得太老了。

我还想参照老版文件,看着修改4.2.2中的”wp-db.php”,结果发展这同一个文件,可新旧版本间差异太大,自己根本看不懂,更别提修改了,算了。专业的事还是交给专业的人解决,自己将就把博客降回至3.5.2版本还省心点。虽然老版本的BUG会不少,但在SAE上想必安全不会出什么太大的问题。唯有不爽的是自己这个主题,在老版的WordPress for SAE上会出现样式失效,所以留言评论框很难看,好在不是什么太大的问题,我也没啥心思继续琢磨了。

P.S.主从分离又称读写分离,这在分布式数据库是很常见的设计。通常都是一处写入,多处读取,将大量读取请求分散给不同服务器以便降低负载。因为主服务器要求苛刻,SAE目前主从服务器价格比是4比1.5,即主服务器价格是从服务器的2.6倍。

凡事皆有利弊,主从分离能降低负载,但会带来数据同步问题,在业务繁忙的时,主从分离的数据可能同步不上,就会出现文章修改了,刷新之后还是没改的情况。如何保持主从及时同步数据是平台设计人员应该考虑的问题。

觉得好可以点个赞!
(暂无人赞)
Loading...

也被攻击了

Attack

最近几个博友的博客都被攻击,正愤愤不平抱怨之时,自己也中招了!

其实博客访问什么的都还正常,就是登陆后台查阅云豆消耗时发现消耗量比之前平日高了一倍有余,随后调阅防火墙,果然有带恶意访问的IP。

话说SAE给我留下的印象一直不错,一些上规模的DDOS攻击,SAE不是没有见过,去年SAE还遇到过一次大规模的DDOS,应用虽然受到影响,平台总体还是撑住了。我知道拦下攻击的肯定不是普通开发者后台那个所谓的应用防火墙,这种软件层面的小工具防防骚扰还可以,正式打仗可够呛。若是针对某个应用攻击,我就不知道SAE所谓的负载均衡能起到多大效果,我清楚,即便应用能撑住不倒,被攻击后那资源消耗也是巨大的,烧钱游戏我可玩不起。

不知道啥时候开始,SAE的共享数据库计费有了主库跟从库之分。 查询主库的计费是从库的2.6倍多,我用的WordPress for SAE版本虽号称是数据库主从分离,可以降低资源消耗。但后台计费系统显示所有的数据库操作都还是放在了价格2.6倍的主库上,资源消耗这里也是大头,很让我很是纳闷……

没精力折腾代码做所谓的优化了,等哪个高人发现了问题再出所谓的改进版再说。当然,降低消耗的措施还是要做一点的,既然是数据库查询消耗多,那去掉右边栏的最新评论,以及小站信息两个模块,降低数据库查询次数吧。

然后在根目录里边添加robots文件,小站除了国际的谷歌,国内的百度、360以及必应、搜狗几个爬虫之外,其他一些乱七八糟的爬虫统统谢绝来访。当然这个人声明人家不一定会遵守,但做了总比没做好。

最后,继续对那些所谓的骚扰IP抬高防火墙,根据拦截统计,5分钟限制跟24小时限制这两条件不会同时生效,否则那个隔几分钟就访问500次的IP早就被拦下来了。我决定将5分钟访问限制去掉,只留下一个24小时访问2000次的限制,不知道触动规则的IP会不会一直被拦着,拭目以待。

觉得好可以点个赞!
(1个赞)
Loading...