起因
之前在逛朋友的博客(TecTips,顺便宣传一下)时,点开了他上传的一个图集(现在好像已经没了)。我哩个龟龟,没用图床也没开Lazyload,20多张超过1m的图片直接龟速加载,着实把我吓了一跳。
这让我突然想起来,自己的照片集好像也是这么个状况(手动流汗滑稽)。虽然全都压成了低画质的WebP,甚至服务器还换成了腾讯的TCPA拥堵算法,但载入4、5张图片还得花上10s,这还是使用峰值带宽30m的阿里云香港轻量应用服务器的效果。香港轻量这机器,怎么说,还不错吧。虽然打折没它的份,但¥24/月的价格+不用备案使他在一票国内VPS中脱颖而出……
咳咳,扯远了,因为我今年下半年,中美合拍的…啊不是,打算把机器搬迁的国内。(才不是因为大学之后就能嫖便宜的学生机了呢,哼╭(╯^╰)╮)可国内的带宽大小就更恐怖了,基本上没有超过5m的。正巧,我前阵子看了WPJAM插件作者我爱水煮鱼的关于 WordPress 博客 CDN 加速,你只需这篇文章就够了。动态内容优化方面,我原先就有用Redis缓存和WP Super Cache等插件,基本上尽可能的减少了动态内容;静态内容方面,之前尝试过Jetpack、Shortpixel以及Cloudflare等CDN,苦于万里长城,这些国外CDN国内全部水土不服,甚至在某些网络还比不上源站的速度……
那么,答案就只有一个了,那就是,我将向国内CDN宣誓效忠啊!(梗警察警告)
先打个广告, 您只需点击这里,登录阿里云(不限新老客户),不仅能获得巨大的优惠,还能带给我一笔小小的收入。您的动动手指就是对我最大的鼓励!
痛苦地取得ICP备案
要使用在中国大陆提供服务的云产品,必不可缺的一个就是由工信部颁发的ICP备案号。虽然个人站长对这个东西可能普遍不大喜欢,但为了网络空间的有序,ICP备案确实有他存在的必要性。
好消息是,阿里云有相当方便又快速的代备案系统,只要购买了满足一定条件的阿里云产品,就能免费代备案。
坏消息是,香港的轻量应用服务器并不属于上述的产品……
难道要开幕雷击,计划无限期推迟?突然我意识到,我曾在去年9月购买过国内的轻量学生机,并在当时提出了备案申请,但由于种种原因(主要是年龄)最终作罢。当时的备案申请还有机会继续用吗?
让我意外的是,就算放弃了订单,原备案服务号还是可以再度使用的。在提交申请之后的两天,也就是4月3号,工信部的短信就发到了我的手机上
网站设置全站404
本来我还有侥幸心理,认为blog.dalaoweb.top是二级域名,不用停机。结果第二天阿里云的人就打来了电话,要求我在20分钟内让网站停止访问,停止解析或者404都行。
无论是哪种做法,势必都会对SEO造成影响。几经权衡,我选择了影响较小的全站404。
具体的做法我有机会单独写一篇文章,总之,结果是这样的。
曲线救国规避“空壳网站”问题
阿里云备案“常见问题”栏有这样一篇文章
购买阿里云中国内地(大陆)服务器并通过阿里云ICP代备案系统进行备案申请、备案信息管理维护时,阿里云备案空壳网站核查系统会不定期进行“空壳网站”核查,以保障备案网站的解析IP地址为备案接入服务商的中国内地(大陆)服务器IP地址。本文为您介绍“空壳网站”核查的重点及如何处理
空壳网站核查
抱着疑问,我去询问了客服
为了撑到下半年换机器前不被撤销备案(都怪我香港轻量一口气续了半年),我想到了一个曲线救国的办法。
我拜托了那位运营着TecTips的朋友,把我的www解析到他的机器上去,开一个纯静态页面,index.html填入以下内容
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="refresh" content="0; https://blog.dalaoweb.top">
</head>
<body>
<div><a href="http://www.beian.miit.gov.cn/">浙ICP备20010526号</a></div>
</body>
各位可以试着访问www.dalaoweb.top看看,反正curl显示是这样的
也不知道管不管用,我觉得应该行。时间会检验一切。
在footer插入备案号
ICP备案号搞到了,在footer插入备案号就相对简单多了,WordPress主题可以在设置→常规里直接填写备案号。想我使用的第三方主题,用WordPress自带的主题编辑器就可以实现
↓这是一条广告↓(疯狂暗示,啾啾D酱)
配置CDN
绕了一大圈,总算回到正题上来了。其实CDN的实际配置,相比上面这些都要简单太多(毕竟只需要和机器较量,不用和人打交道)。
我这里使用的是WPJAM插件,自带将静态文件链接到CDN的功能,支持阿里云、腾讯云、UCloud,操作简单。作者也很详细的以阿里云OSS为例写了教程,具体可见WPJAM Basic 功能详细介绍:CDN 加速和WordPress 博客使用阿里云对象存储 OSS 进行静态资源 CDN 加速这两篇文章,我也就不班门弄斧了。接下来主要记叙自己遇到的几个问题。
开启HTTPS(SSL)
这个不需要什么操作,在CDN面板上就能完成,证书可以用自己的也可以用阿里云送的免费证书。D酱我用的是阿里云的免费云盾证书,有效期一年。
HTTPS访问请求会额外计费,但好在价格不高,一万次为0.05元。
部分静态文件无法加载或控制台出现No 'Access-Control-Allow-Origin' header is present on the requested resource 跨域请求错误
跨域请求错误,在控制台里体现为这样
这个错误会导致某系静态文件加载失败(在我这里就是部分字体无法加载),具体原理和原因可以看这篇文章 CORS——跨域请求那些事儿 ,这里我只给出解决办法,在cdn缓存配置中添加http头
站外图片无法显示
这个应该是WPJAM插件的锅,把远程图片保存关掉就好了
至此CDN就配置完毕了,效果如下图所示,也算挺不错了
稍微总结一下吧。先说一句,没有钱是自己穷的问题,不能怪别人。
优点
- 动静态分离
- 减轻源站负担
- 加快静态文件的加载速度
- 提高整体加载速度进而提高SEO分数
不足
- 繁琐的ICP备案
- 令人无语的“空壳检测”
- 有一定的技术门槛
- 插件仍有不足,例如对图片转换的支持有待完善
至于CDN效果如何,值不值得我花费的时间、精力和金钱。就得留给时间检验了。
↓这是一条广告↓(疯狂暗示,啾啾D酱)