在一个月前发现博客直连访问速度堪忧时,我终于下定决心对小破站的云上部署方案进行调整。如今,整套的优化方案已经启用了近一周,网站的访问体验终于有了质的飞跃。
原方案的局限性
之前为了省事,在某宝的代理商店铺里买了阿里云的香港轻量应用服务器,所有的站点资源都一股脑的堆在上面,平时一直开着小灰猫,看着浏览器里的缓存,没多大感觉;直到那天向同学推荐自己的教程,看着他的浏览器加载了十几秒仍是白屏,自己又不信邪地一测,才发觉即使是阿里云的线路,跨境访问的延迟与丢包率实在恐怖……并且由于技术水平有限,HTTPS 评级勉强到 A, 用的还是90天一换的 Let's Encrypt 免费SSL证书……
也该优化一下了。
新方案的架构
首先,为了改善国内访客的体验,合规性是必不可少的;我为此关站两个星期,ICP备案号批下来了,公安备案被拒绝了……不要也罢……
手头还有百度智能云的活动特惠机器(2C 4G 6M 156两年),托管一个 typecho 小站点绰绰有余;图片一类的静态资源完全可以放到对象存储一类的服务;主题支持性不错,完全可以实现全站加速。
为什么选择名不见经传的多吉云
之前读到 W4J1e 大佬的 国内免费CDN和云存储测评分享,感觉多吉云挺不错的;
最近在他的那篇CDN又被刷了的后续中,了解到其售后也很好;
自己上手尝试后,发现其虽然大部分基于腾讯云,但是储存桶的配置和使用相比腾讯云COS简单的多,免费额度、更实惠的单价、负责任的售后,挺适合我。
顺便一提,我个人习惯把图片按照/archive/{slug}/{num}.jpg
的形式存放,便于后期管理与迁移;当然,如果你更习惯用 PicGo一键上传,也可以试试PicGo插件:上传图片到多吉云存储。
遭到攻击后如何处理
只要网站使用了CDN,就要考虑遭到攻击后如何最小化损失。对于个人网站,下线一会儿不少什么大问题,“挨打”之后的高额流量费才是。之前看了几篇评测,考虑接入 天御云 和 网盾星球 两家国内SCDN商家,价格可以低到每月1元,但是配置难度和大打折扣的速度令我望而却步,只能作为后备方案;大厂商动辄数千元的WAF/SCDN服务也不在预算范围内;Cloudflare仅支持 NS 接入不说,免费层计划只提供被“特别关注”的海外节点,与我的初衷背道而驰……
绕了一圈,还是使用多吉云的访问频次限制吧,限额设置的低一点,应该问题不大……
CDN配置踩坑记
主要参考了 Stille 的 Typecho博客全站部署腾讯云CDN教程,成功的部署了(感觉多吉云融合CDN的后台就像是腾讯云CDN的精简版……),但是还是遇到了后台登出功能不正常的 Bug。一番调试之后原来是缓存配置的默认参数是“缓存30天”而非“不缓存”,也没有对/admin;/action;/action/logout
目录避开缓存。最终配置修改为下图即可(注意规则的顺序代表其优先级):
为了防止破产,访问频次限制设置还是较为保守的:
虽然不太理解参数含义 ,我开启了 CDN 的“缓存源站响应的所有 HTTP 头部”和“Range 回源”以及对.js;.html;.css;.xml;.json;.shtml;.htm
类型文件开启智能压缩;同时,为了避免一些潜在的问题,关闭了主题的“Ajax 异步提交评论”功能;服务器没有 IPv6 地址,因此暂时不打算开启 IPv6 访问。
静态资源储存踩坑
把多吉云的云存储当作图床使用是没有任何问题的,不过用它本地化 Google 字体时记得允许跨站访问,具体就是添加下图的HTTP响应头:
使 HTTPS 评级达到 A+
SSL证书使用的是腾讯云提供的 TrustAisa 一年期免费证书,为了达到 A+ 水平,CDN上要开启 HSTS, TLS开启1.2和1.3即可,而OCSP 装订是提升性能的可选项,推荐开启:
宝塔面板上对应的站点也(最好)需要更改TLS版本,开启HSTS,具体请参考宝塔面板正确开启TLS 1.3并删除TLS 1.1
DNS CAA 记录也可以简单配置一下,以本站为例,在alpacabro.com
域名下添加一下两条记录即可:
主机记录 | 记录类型 | 记录值 | TTL |
---|---|---|---|
@ | CAA | 0 issue "trust-provider.com" | 600 |
@ | CAA | 0 iodef "mailto:me@alpacabro.com" | 600 |
P.S. trust-provider.com
是自己的证书CA机构域名,请根据实际情况填写;mailto:
后的邮箱是 CA 将违规的颁发记录URL反馈的收件地址,填写自己的常用邮箱即可。更多细节请参考设置 CAA 记录 - DNSPOD。
最后,刷新CDN缓存,去Qualys SSL Labs试试效果吧!
略显多余的结尾
当然,以上所作的一切努力只是让访客打开网站更快,访问体验更流畅;当页面加载完成后,决定访客体验的最主要因素,可能只有内容质量了。