这些天,我的一台放网站的服务器经常负载很高,上面安装了一个WordPress网站,查看日志,经常有人抓取wp-login.php,估计是黑客攻击,导致大量数据库访问造成负载过高。

WordPress其实是一个很常见的建站工具,估计很多人都会用到,上述情况是一种较为常见的黑客攻击导致的高负载,解决方法有很多种,我这里就介绍一下我的解决方案。

1、WordPress静态化

先针对WordPress网站实施全站静态化处理,我用的插件是“super-static-cache”这个插件,可以实现文章和目录的静态化。

不过,使用“super-static-cache”这个插件后,目录和tag会存在重定向问题,即自动从一个无“/”的目录跳转到一个有“/”的目录,正常浏览虽无问题,但对SEO不友好,最好再安装一个名为“permalink-trailing-slash-fixer”的插件来解决分类目录重定向问题。

2、添加防火墙规则

经过WordPress静态化处理之后,正常用户访问网站应该不会访问到php文件,这时候,给网站加一个防火墙,推荐使用免费的cloudflare,在防火墙后台-“安全性”-“WAF”里,增加一个规则,当“完整URL”包含“php”的时候,则执行防火墙的“托管质询”操作。

表达式为:http.request.full_uri contains "php"

我在主机上实际操作,部署了该防火墙规则之后,发现服务器整体负载立刻就恢复正常了。防火墙后台查看了一下,CSR(质询解决率)为0,说明全部都是机器抓取,并且全部都过滤掉了,效果非常不错。

如果大家也遇到类似问题,可以尝试使用上面的方法优化一下,没准能很快解决高负载的问题。