网站建设

WordPress结合阿里云OCS开启高速缓存,优化网站响应速度

Jager · 3月5日 · 2015年 · 5638次已读

自从搬到阿里云 ECS,可谓惊喜连连,虽然转入备案严苛了点,但确实不虚此行。除了 ECS 和云磁盘的稳定性,比较实用的还有:利用云盾 WAF 隐藏网站真实 IP、利用自动快照备份系统及数据等。今天查看阿里云控制台时发现了另外 2 个免费功能: 开放缓存服务 OCS 和 开放搜索服务 OpenSearch。

开放搜索服务 OpenSearch,看了半天大概了解了下功能,发现我用不上,申请后就放到一边了:WordPress结合阿里云OCS开启高速缓存,优化网站响应速度 WordPress结合阿里云OCS开启高速缓存,优化网站响应速度

再看 OCS,发现它其实就相当于一个云端的 Memcache,与本地 MemCache 相同之处在于 OCS 兼容 Memcached 协议,与用户环境兼容,可直接用于 OCS 服务,不同之处在于硬件和数据部署在云端,有完善的基础设施、网络安全保障、系统维护服务。

看了半天的 OCS 的 WIKI,感觉要是从零开发对我来说还是门槛太高。于是翻翻看看有没有适合自己的“拿来主义”,结果还真有:《OCS 与 WordPress 结合使用教程》,写得也非常详细直白,分分钟就部署好了。

下面分享简单的部署记录:

一、开通 OCS

阿里云最喜欢的招数就是免费体验,以此来吸收用户,比如半年的 ECS 和 RDS 等。但是这个 128MB 的 OCS 却没有时间限制,只要你有 ECS 就能申请并使用了:

WordPress结合阿里云OCS开启高速缓存,优化网站响应速度

OCS 免费体验规则
  • 实名认证的 ECS 用户均可免费开通 128M 的 OCS;
  • 每个用户只能开通一个 128M 的免费 OCS,该免费实例释放后用户可再次开通 128M 的免费 OCS;
  • 用户开通 128M 免费 OCS 后,可以将该实例升配至其他档位的 OCS(如 512M、1G 等),变配之后的费用按照该档位对应的计费标准计费;
  • 用户若已有 OCS 其他档位的收费实例,也可以将该实例降配至 128M 免费实例,变配之前的费用仍按该档位对应的计费标准计费,变配之后的 128M 实例免费;
  • 本活动最终解释权归阿里云所有。

128MB 可以用来做什么?对于我们这种 WordPress 博客已经是绰绰有余了。不用白不用,顺手就申请了。

申请地址:http://free.aliyun.com/?tab=OCS

二、部署 OCS

①、先进入 OCS 管理控制台,记住实例 ID,内网地址、用户名及密码等(貌似第一次要重置下密码,反正我是不知道密码是多少)。

WordPress结合阿里云OCS开启高速缓存,优化网站响应速度

②、下载 WordPress 缓存插件(OCS 配置文件)

③、解压后得到如下三个文件:

WordPress结合阿里云OCS开启高速缓存,优化网站响应速度

④、修改配置

A. 编辑 object-cache.php,定位到 96 行的 array 数组,根据模板提示修改成你的连接配置即可,具体函数代码如下:

function wp_cache_init() {
	global $wp_object_cache, $sasl_memcached_config;
	$wp_object_cache = new WP_Object_Cache();
	if ( isset( $sasl_memcached_config ) && is_array( $sasl_memcached_config ) ) {
		$wp_object_cache->load_from_config( $sasl_memcached_config );
	} else {
		$wp_object_cache->load_from_config(array(
			'default' => array(
                                #修改下面这个数组中的连接信息:
				array(
                                    'host' => '你的 OCS 的内网地址.ocs.aliyuncs.com',
                                    'port' => '11211',
                                    'user' => '实例 ID',
                                    'pass' => '密码',
				),
			),
		));
	}
}

保存后将这 3 个 php 文件上传到 WordPress 的 wp-content 目录(不含文件夹)。

B. 编辑 WordPress 网站根目录的配置文件:wp-config.php,在require_once(ABSPATH . 'wp-settings.php');之前加上如下代码激活缓存即可:

define('WP_CACHE',true);

现在登陆你的 WordPress 后台插件界面,在高级插件选项就能看到刚刚新增的高级缓存插件了:

WordPress结合阿里云OCS开启高速缓存,优化网站响应速度

三、实时监控

至此,你的 WordPress 便搭上 OCS 的快车啦,现在就可以在 OCS 的控制台查看命中率等信息了,其他有关缓存的配置,可在advanced-cache.php中修改(例如设置 cache build 的次数 var $times 等,回头再研究...)

WordPress结合阿里云OCS开启高速缓存,优化网站响应速度

对于张戈博客这种纯静态缓存之后的 WordPress,用处可能有点鸡肋,也就是在缓存新建或是有人点击博客的评论刷新功能时能有点作用。但是,对于那种没有纯静态缓存,却用着数据库缓存插件,比如 Hyper Cache 的朋友,那这个 OCS 就是更好的选择了,当然前提是你是阿里云 ECS 用户。。。

好了,就记录这么多了,正在用阿里云 ECS 的朋友可以大胆试试看了。

36 条回应
  1. 懿古今 2015-3-5 · 13:24

    看起来高大上很多啊,我们还是在使用最低端的虚拟主机呢,羡慕

    • avatar
      Jager 2015-3-5 · 13:56

      也是我爱折腾,没办法,虚拟主机施展不开~~ :lol:

      • 懿古今 2015-3-5 · 16:22

        这个倒是,技术高手折腾起来还是很给力的,所以机子也要跟得上才行。

  2. 暴博客 2015-3-5 · 14:16

    元宵节快乐

  3. 回梦无痕 2015-3-6 · 16:10

    其实如果细心的话。可以发现wp super cache插件在启用ocs/Memcached后,在高级选项里会多了一个选项。貌似功能好像是把生成的静态文件放到内存里面去的而不是原来的把数据库缓存到内存,使得读取静态文件更加快!我尝试过,只是总有问题,发文章时候文章的状态不能正确变更为已发表!博主技术高明,可以捣鼓捣鼓,我不会php的看不懂代码!

    • avatar
      Jager 2015-3-6 · 16:12

      按我文章分享的OCS部署方法,应该没有什么门槛,比较简单,缓存命中率还行。

      • 回梦无痕 2015-3-6 · 16:17

        部署是没问题。只是本来能和wp super cache配合起来使用,把静态文件放进进内存的。但是却有问题不会弄而已!

        • avatar
          Jager 2015-3-6 · 16:24

          哦,我没用super这个插件,我直接写的代码缓存html。

  4. 极品飞鸽 2015-3-6 · 22:43

    这个功能我用过,但是主题不是前台页面样式变形就是后天页面变形,哎,搞的我直接放弃了,但是用了之后速度确实提高了很多,完全杠杠的

    • avatar
      Jager 2015-3-6 · 22:44

      OCS和主题样式一毛钱关系都没有的。。。只缓存数据库内容,估计你配置不当。

      • 极品飞鸽 2015-3-6 · 22:48

        这配置就这么简单,完全没啥难点,反正一直没搞懂问题出哪儿

  5. 圆月博客 2015-3-7 · 11:41

    阿里云的貌似还真不错

  6. sistrong 2015-3-7 · 17:45

    为啥我开启OCS缓冲后网站访问后立马变慢啊?不懂啥原因

  7. 笑三笑 2015-3-9 · 9:44

    看了下,觉得还是升级带宽好了

  8. 穆绪方博客 2015-3-11 · 15:58

    看来我也要搬家到阿里云才能跟上博主的脚步啊!

  9. 微饭 2015-3-19 · 22:47

    博主你提供的OCS插件貌似漏掉了一个文件:batcache.php 这文件是释放到【wp-content/plugins】目录的。

    可以看一下:WordPress Ocs加速插件使用教程

    • avatar
      Jager 2015-3-20 · 12:58

      恩,你说的应该是一个可选优化。我这文章是参考阿里云的WIKI写的,可能阿里那边把这个丢弃了,要是效果不错的话,有时间在文章中加上。
      搜索看了下,发现是一个缓冲页面到内存的插件,我这边是纯静态,所以也就没必要了。

      • 微饭 2015-3-20 · 13:20

        对于那些新手而言,这插件应该还是比较有作用的

  10. 小舞 2015-3-29 · 21:50

    后来我在多梦看到一篇,不用插件的,分享下,希望对你有帮助http://bbs.aliyun.com/read/203616.html?pos=2&spm=5176.7114037.1996646101.4.cXLqNi
    也让你看看有什么不足的地方

    • avatar
      Jager 2015-3-30 · 12:57

      感谢分享,确实更简单,我待会试试。

    • avatar
      Jager 2015-3-30 · 16:15

      亲自测试了下,估计大部分人用他这个方法后台会白屏。实测发现,他这个方法需要服务器支持php的memcache模块,没有的话后台就会白屏,开启debug会提示缺少memcache() 这个class方法。

      • 小舞 2015-3-31 · 11:59

        我之前也试过了,这个必须得现在服务器上安装memcache

        • avatar
          Jager 2015-3-31 · 12:42

          那比我的方法门槛更高,我这个文章适合小白一些。除非已经支持memcache的主机。。。

  11. 小武 2015-3-30 · 15:30

    对于服务器这块确实搞不太懂. . OCS和缓存插件需要共存? 还是替代?

    • avatar
      Jager 2015-3-31 · 12:43

      OCS主要缓存数据。

  12. 新疆SEO 2015-4-9 · 0:19

    发现楼主的博客就是一个宝藏啊。 学知识的地方呢

  13. 脑精网 2015-4-21 · 23:07

    跑到阿里云上面我就打退堂鼓,呀的,可比虚拟主机难操作多了,还要创建什么的应用,一头雾水。

  14. 集影窝 2015-5-20 · 23:05

    确实给力,博主的博客弄的不错。

    • avatar
      Jager 2015-5-21 · 0:00

      有空常来逛逛。

  15. 折八百 2015-7-14 · 19:47

    楼主,我按照你的方法安装了,后台显示正常,可是前台会白屏哦,我的wordpress 3.8

    我服务器本身安装了Memcached,会不会是这个原因了?

  16. 如何卸载 2016-3-9 · 20:41

    按照张哥的教程,在Wordpress上安装了这个,可是现在问题来了,
    我在阿里云释放了Ocs,现在网站打不开了。貌似这个高级插件没法直接卸载?

    • avatar
      Jager 2016-3-10 · 10:30

      把之前上传到 wp-content 目录的 3个 php文件删除即可

  17. 一曲长歌辞烟雨 2016-12-3 · 12:16

    现在OCS好像收费了呢。。我还是在本地搭建Memcached吧

  18. 君宇网络 2017-10-22 · 8:21

    一直在用ECS服务器,但是OCS还不了解

  19. 享乐时光 2018-8-2 · 13:01

    老哥,这个方法好像不行了呢

  20. aERRY 2020-2-9 · 2:28

    张大,代码该更新了