利用七牛云存储缓存 Gravatar 头像加速 WordPress

2017-02-1112:00:58 40 9,247
摘要

最后就是体验博客载入速度了,如果你是七牛付费用户还可以给头像缓存的七牛空间开启融合 CDN ,这样头像调用会选择离你最近、速度最快的节点链接,这样就可以避免Gravatar被“墙”以来头像总是获取失败和载入龟速的尴尬了,也算是变相的给我们的 WordPress 提了速!话说也不知道啥时候 WordPress 才会考虑在国内架设服务器,但愿这个愿望可以实现。

推荐给大家的 WordPress 本地缓存神器 WP-Rocket 普遍都反应非常的好,请参考【推荐一个 WordPress 本地缓存的神器: WP-Rocket 插件】一文。明月是个强迫症重度患者,对于 WordPress 载入时间缓慢一直都受不了,这个 WP-Rocket 总算是解决了 WordPress 后台载入龟速的“顽疾”,最后就是评论的 Gravatar 头像问题了,虽然鸟哥主题 Begin 支持切换 Gravatar 服务器,但是无论哪个服务器都没有稳定过,国内多说的稳定性还不如“墙外”的 SSL 服务器呢!

博客本身评论比较多,如果文章评论量超过 30 条后,就严重影响文章的载入时间了。所以给 Gravatar 头像加速成了必须要解决的问题了,今天明月就分享给大家一个“利用七牛云存储缓存 Gravatar 头像”的方案,目前明月的博客站都已经实现这样的加速了!具体大家可以浏览本博客体验效果! 原理其实很简单,就是借助七牛云的“对象存储”拉取 Gravatar 的 SSL 服务器(当然也可以使用多说服务器)上的头像图片转存到七牛空间来实现,如果再在“对象存储”空间上再开启七牛云的融合 CDN 的话那就超级完美了,当然不使用 CDN 单就七牛空间的速度也比原有的强出了很多。下面给大家具体的实现方法,整体下来最多 20 分钟就可以搞定了:

[igb href='https://portal.qiniu.com/signup?code=3la4hl87ku7o2']直达申请注册七牛云[/igb]

首先,当然是注册个七牛云账号并通过实名认证了,然后登陆七牛云账号新建一个“对象存储”空间,空间名字可以任意英文组合即可,镜像源要设成 https://secure.gravatar.com/以便拉取 Gravatar 官网的头像图片(当然你也可以设定成多说 Gravatar 头像服务器地址),如下图: 利用七牛云存储缓存 Gravatar 头像加速 WordPress-2 然后根据自己 WordPress 主题使用到的头像尺寸设定七牛云对象存储空间的“图片样式”,参照 Gravatar 官方头像不同 size 的图片,依次是?s=40、60、80、100、120(你可以审查元素看看): 就明月使用的 Begin 主题来说 32、40、60、80、100 尺寸是最合适的,所以分别创建“图片样式”如下图: 利用七牛云存储缓存 Gravatar 头像加速 WordPress-4

这是全部创建完成后的处理样式列表

利用七牛云存储缓存 Gravatar 头像加速 WordPress-5

每个图片处理样式就参照上图设定即可,样式名称即为尺寸数字即可

至此七牛云存储端设置全部完成,剩下的就是在 WordPress 所使用的主题下根目录下的 function.php 里添加如下代码替换 WordPress 默认评论头像地址:

 
  1. //缓存 Gravatar 头像到七牛云存储,WordPress 4.0+ 适用
  2. function qiniu_avatar($avatar) {
  3.   $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*.srcset=.*/','<img src="http://这里要替换成你的七牛空间域名/avatar/$1-$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
  4.   return $avatar;
  5. }
  6. add_filter( 'get_avatar', 'qiniu_avatar', 10, 3 );

记得要把你自己的七牛空间域名或者绑定的自定义域名在代码里填上(代码内紫色字部分替换即可),然后保存,浏览一下评论页面后,对评论头像地址进行验证是不是已经替换为七牛云空间缓存的图片了。这时登录七牛云可以看到空间里面已经缓存了头像图片了,如下图: 利用七牛云存储缓存 Gravatar 头像加速 WordPress-6 最后就是体验博客载入速度了,如果你是七牛付费用户还可以给头像缓存的七牛空间开启融合 CDN ,这样头像调用会选择离你最近、速度最快的节点链接,这样就可以避免 Gravatar 被“墙”以来头像总是获取失败和载入龟速的尴尬了,也算是变相的给我们的 WordPress 提了速!话说也不知道啥时候 WordPress 才会考虑在国内架设服务器,但愿这个愿望可以实现。

2017.02.14 更新

有站长说 Gravatar 头像缓存到七牛后会造成用户更换头像后不能同步更新的问题,这个同步更新估计是没戏了,但我们可以通过设定 Gravatar 头像的缓存有效期来避免出现这样的尴尬,只需设定缓存 Gravatar 头像的七牛空间的“文件客户端缓存 maxAge”就可以了,如下图: 文件客户端缓存 maxAge 的值是以秒为单位的,为了方便大家根据不同情况设定不同的天数,下面直接给出不同天数对应的秒数,以方便大家填写:

  • 1 天=86400 秒
  • 3 天=259200 秒
  • 7 天=604800 秒
  • 10 天=86400 秒
  • 14 天=1296000 秒
  • 20 天=1728000 秒

为什么可以这样设定,这是因为前文讲到的缓存 Gravatar 头像的七牛存储空间镜像源是 Gravatar 官方的 https://secure.gravatar.com/服务器,七牛会重新拉取对应的头像图片的。

历史文章推荐:

  • 打赏明月一下下
  • 多谢您的赞赏!
  • weinxin
  • 本博客小程序
  • 微信内浏览本博客
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:40   其中:访客  20   博主  20

    • 泪下依然 1

      又拍云的可以代码实现吗?

      • 米扑博客 4

        很实用的技术,捣鼓了好久

        • Jason 1

          不错。。你这个还是七牛https~的方案。不好走免费流量。酷的

            • 明月登楼  博主

              @Jason 呵呵,头像没有多少流量的,每月几分几毛而已!

            • 山外的鸭子哥 2

              嗯 这确实是个不错的方案 我现在把头像缓存到本地服务器进行加载 只是对于新用户 还是得去墙外拉

                • 明月登楼  博主

                  @山外的鸭子哥 亲,七牛里面镜像站点设定为Gravatar站点域名就可以自动镜像了!七牛有境外访问能力的!

                • 请输入您的QQ号 1

                  厉害呀~~ 博主的社会主义核心价值观好牛~~ :lol: :lol: :lol:

                  • 美玉无瑕 4

                    不错,用上了,效果很棒呀!
                    原来还可以定时自动的更新头像呢!不错,赞一个!