博客部署迁移与CDN优化全攻略

博客部署与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配置详解

域名设置与解析

  1. Netlify配置

  2. 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

完成以上配置后,等待所有设置生效即可。这一方案既解决了国内访问速度问题,又保留了海外用户的优质体验。