博客部署与CDN优化实战:从Vercel迁移到Netlify
背景与迁移原因
我的博客基于Hexo框架构建,所有代码和内容均托管在GitHub上,并通过Serverless服务实现自动化部署。最初使用Vercel进行构建和发布,每次在GitHub上更新文章后,Vercel会自动触发重新构建并发布。为提升国内访问速度,我额外配置了国内CDN(尽管Vercel自带CDN,但国内访问效果不佳)。
最近发布新文章时遇到错误,经排查发现是Vercel不再支持低版本Node.js所致(当前Vercel仅支持Node.js 16.x及18.x)。我使用的Hexo主题Minos因年代久远(原作者已停止更新),仅兼容低版本Node.js(14.x)。经过多次尝试和评估,决定将部署平台从Vercel迁移到Netlify。
Netlify平台优势
Netlify在功能和使用上与Vercel类似,提供以下核心特性:
- 免费二级域名
- 自定义域名绑定
- 自动重定向(如jiangyu.org与www.jiangyu.org互转)
- HTTPS支持(可上传自定义证书或使用免费Let’s Encrypt证书)
- 内置CDN能力
但Netlify自带的CDN在国内访问时速度仍不理想,因此需要替换为国内CDN服务以优化体验。
国内CDN配置详解
域名设置与解析
Netlify配置:
- 在Netlify中添加域名(暂不解析)
- 将www.jiangyu.org设为主域名,系统会自动将jiangyu.org重定向到www.jiangyu.org
CDN服务配置:
- 在CDN服务商控制面板中添加www.jiangyu.org和jiangyu.org为加速域名
- 源站填写Netlify提供的负载均衡IP(例如75.2.60.5),或通过ping Netlify二级域名获取的IP地址(因Netlify自带CDN,可能有多个IP)
- 由于启用HTTPS,源站端口均设置为443
- 对于重定向域名jiangyu.org,在CDN加速服务中开启回源跟随301/302功能
DNS智能解析
- 使用DNSPod进行域名解析,实现国内外流量分流:
- 国内线路:将@和www记录分别CNAME到CDN服务商提供的地址
- 国外线路(默认):CNAME到Netlify提供的二级域名(如*.netlify.app),确保海外用户仍能使用Netlify原生CDN
完成以上配置后,等待所有设置生效即可。这一方案既解决了国内访问速度问题,又保留了海外用户的优质体验。