最近,在网站访问记录中经常能看到一种现象:同一个 IP 在短时间内有大量访问,比如说某 IP 每分钟打开主页上百次。还有一种暴力猜解后台密码的,一下午访问几万次,访问的 URL 都是 wp-login.php 。

遇到这种情况时,网站基本是打不开的,甚至远程桌面都很难登陆上去。起初以为是带宽小、网络拥堵,后来发现根本不是这么回事儿。难以访问的根源是 CPU 占用率太高,PHP 占用 50%,MySQL 占用 50% 。这些伪静态页面并不是真正静态,每次被访问的时候还是要动态的执行一遍。网站这么卡又无力吐 槽 WordPress 的渣渣性能,看来要靠缓存来解决这个问题,也就是让这些伪静态变为 「真」 静态。

以前用的主机都是 LNMP 环境,主机商经常会提到有这加速那缓存的。这回用 IIS 彻底傻眼了,那些东西似乎都用不上了。折腾了一阵 IIS 自带的缓存 功能,发现根本不起作用。 IIS 折腾不动就折腾 WP,这才想到 WP Super Cache 插件,这货就是用来把博客静态化的。在 IIS 环境装这插件受到一些限制,也遇到点麻烦,最终还是顺利折腾上了。

 

 

插件配置好之后,可以看到 cache 文件夹中出现静态缓存了,每个文件夹中还有桌面版和移动版两种缓存,这个插件做的还真完善。

 

 

插件配置好之后,在 17ce 网站简单测试了一下,开启缓存前后有很大差距的:开启缓存之前,服务器 CPU 占用 100%,而且满载时间很长,全国普遍响应时间超过 5 秒; 开启之后,服务器 CPU 瞬间达到 40%,之后立刻降回到 0%,全国普遍响应速度不到 1 秒。

 

 

 

 

网站经常有一分钟内上百次访问的情况,但自从开启 WP Super Cache 之后,就没再出现过很难打开的情况。