最近很多人都在问明月的博客上用的是啥缓存插件以及服务器端采用的是什么缓存组件等等的,今天明月在此再次重申一下目前我的博客 WordPress 程序没有使用任何缓存插件了,服务器端仅仅保留了 PHP 代码的优化扩展OPCache而已,服务器的 CentOS Linux 启用了 SWAP 分区(可参考【阿里云 ECS 上运行 WordPress & Typecho 的建议开启 swap 分区】一文)。网站外部使用的 CDN 来加速的,目前主要是360 网站卫士和上海云盾 CDN 为主,【学习笔记 Blog】在上述两个 CDN 任意一个前提下使用了七牛云的“动静分离”加速优化(主要是使用的 handsome 主题原声支持七牛云加速)。
至于为什么放弃使用 WordPress 缓存插件在【我为什么放弃了缓存插件?】一文里我已经阐述的很清楚了,归根结底就是我感觉缓存插件的必要性并没有我们想象的那么大,反而更多的时候因为缓存插件的存在造成更多博客网站稳定性差的体验。当然,这跟明月选用的是阿里云 ECS 服务器有关系,在以前使用虚拟主机的时候没有缓存插件的话确实经常性的会出现数据库负载过大造成“宕机”的问题,缓存插件的意义在虚拟主机上还是有点儿作用的,但缓存插件先天的不足也会造成站点稳定性差的体验,比如漏洞、BUG、功能不完善等等,其实这些问题根本原因还是 WordPress 是个动态网站平台,如果使用的是纯净态网站平台,如 Hexo 等等的话这些问题自然也就不存在了。同样的 Typecho 也是这样的问题存在,可以说只要是缓存插件一定会有其不足的地方, WP Super Cache、 W3 Total Cache 、 WP-Rocket 、 WP Fastest Cache 等等这些插件,几乎都不可避免的会有不足之处,有时候这些“不足之处”无法言表,出现的问题都是莫名其妙的,至少明月在使用这些插件的时候都碰到网站 502 的问题,甚至夸张的碰到搜索引擎爬虫近一个月的时间抓取失败,最后证明都是因为缓存插件造成的。
至于说服务器端的 Memcached 和 Redis 这些加速组件,明月也都尝试过和折腾过,加速效果并不是很明显,并且对服务器硬件配置有一定的要求(最明显的是内存一定要大),对于我们草根博客来说其实需求性都不高,甚至可以说跟我们选用的服务器配置都不是非常的匹配,这类加速组件感觉对于服务器集群和大型的在线社区、商城等等交互性特别强的站点才会有不错的表现,个人博客上使用实在是“鸡肋”了。同时因为这些组件都涉及服务器底层的配置和部署,一不小心就会带来安全隐患,如果你是一个习惯于使用面板的小白的话,明月不建议大家使用的,否则你就等着“折腾”吧。
有图有真相,上图即为明月当前使用的 WordPress 插件了,目前就使用了这些插件,可以看到真的没有缓存插件哦。
至于说明月使用的 CDN 服务,我已经有很多文章都提到过和推荐过了,好处就是网站稳定性增强了不少,减少很多不必要的、重复性的各种“折腾”。同时还降低了很多的安全隐患,唯一比较麻烦的就是在服务器的防火墙(如:iptables)里将 CDN 节点白名单导入即可,这是为了保证 CDN 节点能够及时准确的抓取缓存服务器内容(这是很多人使用 CDN 出现各种问题的主要因素之一)。至少到现在为止明月对站点的速度和稳定性还是很满意的,各个搜素引擎的抓取和收录、索引都正常稳定。
那么, WordPress 的缓存插件真的没有用处了吗?答案当然是否定,在【WordPress 博客什么时候才需要缓存插件】一文里明月已经告诉大家在什么时候才需要使用缓存插件了,归根结底缓存插件其实就是一个“救火员”的存在,并不是必须要用的,所以大家在使用缓存插件之前明月建议大家要仔细分析和考虑一下,自己的站点是否需要“救火”,是升级服务器硬件配置还是用缓存插件临时对付一下。