折腾一下CDN
记录一下折腾CDN的经历
起因
恰逢腾讯云在网络上大力推广他们的Edgeone,送了不少免费板名额,体验一下不失为一次学习的过程。我的服务器部署在家宽上,由于没有公网IPv4,每次访问时需要借助https://blog.778511.xyz cloudflare的页面规则重定向至https://blog.stun.778511.xyz:[port] ,这个[port]是由一个脚本定时获取stun信息并上报的,在大陆地区,访问cloudflare这个操作比较慢,使用time curl指令测速约为0.5s-0.8s之间,主要原因是cloudflare在国内服务器较少,主要集中在海外,而edgeone使用cname优选后,访问比cloudflare快很多。
过程
让edgeone缓存重定向规则
既然edgeone在国内访问速度还可以,让edgeone的cdn节点缓存cloudflare的重定向信息不就行了?配置edgeone添加域名,验证所有权,再指向加速域名到blog.778511.xyz,搞定。访问试试────怎么每次都cache miss?
curl一下试试,

原来是cf自带的report-to字段每次都不一样,所以edgeone没法缓存,那每次都要去cf服务器现取,这一来一回就需要更多的时间了,edgeone也成减速器了。所以让edgeone缓存重定向规则并不可行。
让edgeone直接缓存源站
虽然没有公网IPv4 但是好在有公网IPv6。

v6哪都好,就是部分设备会没办法访问,比如家中宽带老旧,没有IPv6,这种情况下就会报错。好在edgeone可以访问IPv6的源站,那让其缓存源站,变相实现对外提供IPv4行不行?于是又是一通配置,由于我的站点是动态博客,每次访问生成的html是不同的,所以和普通站点不一样,不能让edgeone缓存html css 或js文件太长时间,图片和视频倒是可以。

访问试试────怎么又这么慢,ping一下试试

怎么会有200ms的ping,第一次访问速度还没我v4站点快呢,好在edgeone可以更改cache头,设置浏览器缓存时间,在浏览器缓存的帮助下也是堪堪可用的,作为stun隧道失效后的备用访问手段吧,毕竟速度实在算不上快。
那优选一下ip试试呢?得知43.174.150.150这个域名三网优化都较好,把dns改到这里试试。
改完确实访问速度提升了,但eo检测到我更改了cname,过了一会,再访问就会报HTTP ERROR 418了。看来新添加的域名没法优选。
试试vercel和netlify
早有听闻vercel和netlify在大陆使用了aws的线路,访问速度优秀,但就是有一个小小的问题,他们只能作用在静态站点上,我博客是动态的,没法部署在他们上面。
结果
折腾到最后,也就cname优选了一下cloudflare的ip,提升效果聊胜于无吧,看来要祭出终极大法了。买商宽,或者备案,前者要钱,后者,也要钱,要买云服务器。累了,有时间折腾折腾astro吧,看看能不能做个静态博客出来。