CODING Pages 静态网站升级腾讯云新版踩坑小记
自己的踩坑记录证明域名未备案的同学就不要升级了,新版需要付费,但升级后强制的境外 CDN 加速导致访问速度反而不如旧版快。
升级背景
之前把博客双部署到了 CODING 静态网站和 GitHub Pages,国内的访问速度快了不少。前几天登录 CODING 后台,突然发现多了一个新版升级提醒。
新版最大的变化就是同腾讯云进行了打通,直接把网站放到了腾讯云的对象存储 COS 上,其他 CDN 加速、SSL 证书管理也是腾讯云的功能。
新版开始收费了
CODING Pages 依托腾讯云资源提供相关静态托管能力,CODING 平台本身不收取任何费用。该产品使用了腾讯云对象存储 COS、内容分发网络 CDN、SSL 证书产品,其中 COS 和 CDN 采用用量计费模式,SSL 证书免费,所使用到的其他相关腾讯云产品本身亦会有一定的免费额度。
新版因为使用了腾讯云的相关资料,所以要开始收费了。对于收费,我是能够接受的,前提是能够提供比免费更好的服务。我的图床就是使用的腾讯云的对象存储,加载速度很快,一个月几毛钱的费用低得基本可以忽略。
升级流程
新版升级界面如下:
因为新版是基于腾讯云的,所以升级需要先在腾讯云进行实名认证并授予相关权限。我因为之前图床就是用的腾讯云对象存储,所以已经实名过了。
之前 CODING Pages 旧版是部署在腾讯云新加坡节点,现在新版部署节点可选香港、北京、上海、广州四个,但未备案域名只能选香港。
添加自定义域名前,需要前往腾讯云开启 CDN 功能,这一步就是我觉得新版最大的坑。
下一步去域名托管商更改解析记录,解析记录值都是指向了 cdn.dnsv1.com
,这也是为什么需要开启 CDN 功能的原因。
部署的时候,「网站类型」我最开始选的是「Hexo」,结果部署失败,部署日志也不知道抽啥风,一直显示不出来,原因也不好排查。我尝试将网站类型改为「静态网站」,重新部署就成功了。
这 CDN 不能要
新版升级完成后,立马测了一波速,然后被结果给吓到了,从之前的一片绿油油变成了一片惨淡的黄色,访问速度下降了不止一点半点。这就很费解了,同样都是腾讯云,之前部署在新加坡节点,现在搬到香港节点了,速度不升反降是什么情况。
检查解析 IP,发现域名全都被解析到了德国、爱尔兰、美国,和想象中的香港地址完全不是一回事。
这种情况我估摸着肯定是 CDN 的锅,去腾讯云后台一检查,发现已经开启的 CDN 设置的服务区域是「中国境外」。我想当然地以为「中国境外」的含义是指只有从国外访问网站的时候才会通过 CDN 访问,国内则是直接访问香港源站,这样虽然国内享受不到 CDN 加速,国外我设置是解析到 GitHub Pages,也用不上,但想着无非就是个鸡肋而已。
但一查文档,发现自己还是太单纯了:
「中国境外」:全球用户访问均会调度至中国境外的加速节点进行服务。
也就是说,不管是从国内还是国外访问,都会被调度到国外的 CDN 加速节点进行接入,想不经过 CDN 直接访问香港源站都不行。而比较符合我想要的效果的「全球」则需要域名进行备案之后才能开启,未备案域名开启 CDN 的话就只能选「中国境外」。
本来是用来加快访问速度的 CDN,对于使用未备案域名的博客来说,已经不仅仅是鸡肋了,反而是拖累。本来直接访问香港就能解决的事情,现在非得绕道德国、爱尔兰、美国才行,这访问速度能快起来才是怪事。
尝试直连香港源站
既然这是 CDN 导致的,那我把 CDN 直接给关了,直连香港源站不就行了?
关闭 CDN
进入腾讯云后台–>「内容分发网络」–>「域名管理」,关闭 CDN 加速。
更改域名解析记录
在 DNSPod 里将国内访问解析到 CODING 提供的默认访问地址,此时再检查 DNS 解析结果发现就全部都指向了香港的 IP,达到了自己想要的效果。
致命的证书问题
设置成直接访问香港源站后,速度果不其然就上来了,比访问新加坡节点速度还要快上一点。但很快就出现了一个更加严重的问题——证书错误。
新版申请的 SSL 证书是和 CDN 绑定在一起的,在腾讯云的证书管理里面只能部署到 CDN,而我把 CDN 关闭了,现在直接访问的是香港源站。源站的证书是颁给 *.cdn.my.qcloud
的,和我的域名不一致,这就会导致浏览器直接报警说网站不安全,这是不可接受的。我尝试解决这个问题,但无奈水平有限,最后也没能找到解决的办法。如果有知道如何解决证书问题的同学,麻烦指导我一下,不甚感激。
现在情况就是如果想要实现自定义域名 HTTPS 访问,就需要打开 CDN,打开 CDN 就意味着牺牲访问速度,这还是在 CDN 和 COS 需要付费的情况下。矛盾无法调和,所以最后我只能又回退到旧版了,幸好 CODING 目前还没有关闭旧版的入口,给了我一个反悔的机会。
总结
花了差不多一天的时间,最后还是老老实实回到了旧版,相当于一天白折腾了。域名没有进行备案的话,在国内使用不方便的地方真的太多了。CODING 新版静态网站我觉得对于使用已备案域名的同学来说还是不错的,配置简单,CDN 加速、SSL 证书一步到位。但同样的对于这些同学来说可供选择的方案太多了,免费的也有不少,CODING 的新版并没有太大的吸引力。
而对于未备案域名的同学新版则非常不友好,完全是负优化,完全没有升级的必要,谁会花钱找罪受呢。CODING 工程师说旧版后续会下线,到时候如果自定义域名的问题没有得到改善的话,可能就需要考虑迁移平台了。现在旧版还能用就先用着。
我向 CODING 反馈了自定义域名的问题,希望能同旧版一样使用 Let’s Encrypt 的证书,不要强行同腾讯云的 CDN 加速绑定在一起,后续如果有进一步的反馈结果的话我会同步到博客中。