Merack

  • About
Merack
崭新万物正上升幻灭如明星
我却乌云遮目
  1. 首页
  2. 建站
  3. 正文

使用又拍云加速GitHub Pages简要配置

2024-06-07

GitHub Pages为GitHub上的项目提供主页托管功能, 我们可以用它来托管我们的静态网站. 但是由于GitHub Pages服务器在国外, 因此在国内的访问速度可能不太理想.但是我们可以通过CDN来加速它的访问速度. 正巧又拍云推出了开发者计划, 为开发者提供每月10G的云存储和15G的CDN流量, 对于个人网站来说已经足够了. 下面是我为GitHub Pages配置又拍云CDN加速的一些简要配置记录.

必备条件

  1. 已经备案的域名(国内的CDN厂商基本都要求)
  2. 又拍云账号: 点我注册, 注册完毕后可以到 又拍云联盟页面按要求申请开发者每月免费配额,  一般在自己网站挂一个又拍云的logo然后提交申请就可以了.需要注意的是, 当前你的网站是要有一定内容的不然不会通过(实测我的博客就发了三篇文章就申请通过了).

简要配置

GitHub Pages设置

静态网站如何生成不在本文讨论范围, 这里只讨论自定义域名相关话题. 在托管静态网站的GitHub仓库中点击Settings->Pages->Custom domain 中配置你已经备案的域名, 比如我这里是blog.merack.top. 需要注意的是如果你的page不是由GitHub Actions workflow生成的, 那么需要确认仓库根目录中有一个CNAME文件, 里面存储的是你自定义域名, 具体请看GitHub Pages的文档: https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/troubleshooting-custom-domains-and-github-pages#cname-errors

又拍云设置

创建服务

在又拍云创建CDN服务, 加速域名填你已备案的自定义域名, 应用场景选网页图片, 实际上根据又拍云的文档目前应用场景只是一个标示, 功能是一样的, 随便选也行. 创建完成后又拍云会给出一个CNAME域名, 在域名域名解析中为域名创建一个CNAME记录, 记录值是又拍云会给出的这个CNAME域名.

回源协议选协议跟随,源站证书校验我这里没开, 源站地址根据GitHub Pages的文档填以下IP(建议配置的时候去文档里找, 防止GitHub那边更新IP), 然后点击确定创建服务.

185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153

CDN功能设置

接着进入到CDN功能配置.

回源管理

在回源管理中回源Host中填入你自己的自定义域名,  比如我这里是blog.merack.top, 因为源站设置中的IP托管了成千上万个GitHub Pages, 需要回源Host中的域名才能找到你的.

注意!!!: 如果你在上面的步骤中已经为GitHub仓库配置了自定义域名, 这里的回源Host填上的就是该域名, 而不是xxx.github.io, 否则会造成too many redirects 的错误.

验证

到这里就可以就可以验证是否配置成功了, 直接ping 或者dig我们的域名, 如果返回的是nm.aicdn.com, 那么就表示我们成功解析到了CDN,访问网站检查是否有其他问题

更进一步, 可以使用一些在线ping网站来检测CDN是否根据不同地区就近返回: https://www.itdog.cn/ping

HTTPS

此外强烈建议配置下https, 又拍云申购SSL证书中选择Let's Encrypt是免费的, 又拍云会自动帮你续期.

其他配置与注意事项

  1. 其他的配置按需求点点就行, 需要注意的是我看到一些资料说HTTP 302 调度这个功能可能会造成一些问题, 建议不开这个.
  2. 如果要开源站资源迁移这个功能, 需要配合缓存配置中将资源缓存时间配置为24小时以上才会触发迁移. 如果要验证缓存时间可以通过浏览器的开发者工具检查响应头的Cache-Control字段, 具体可以看 又拍云的这个文档 (https://docs.upyun.com/cdn/guide/#_6). 不过, 除非你了解 源站资源迁移的访问机制 (https://help.upyun.com/knowledge-base/cdn-source-resource-move/), 否则不建议开启, 会对资源更新造成一些问题.
  3. 如果你的域名挂靠在Cloudflare, 请勿给根域名(即不带任何前缀, 主机记录为@的那个域名 )做CNAME解析(例如, 不能为merack.top添加又拍云的CNAME记录), 因为根据RFC1912,域名根域名不得存在 CNAME 记录,根域名的 CNAME 记录会与域名的 MX 邮箱记录、TXT 域名验证记录发生冲突, Cloudflare会将该CNAME记录展平(CNAME flattening), 指向的是又拍云在国外的某个节点, 无论国内国外访问都是请求的这个节点的资源, 那么这就失去了CDN的功能.

结语

到此又拍云CDN加速GitHub Pages就配置完成了, 本文只是我配置时的一些简要记录, 仅供参考. 如果遇到问题可以通过邮件与我交流. 像其他的一些静态网站加速, 例如GitLab, Vercel, Netlify, Cloudflare Pages, 思路应该也大致相同, 但还是要根据不同平台调整.

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: CDN GitHub 又拍云
最后更新:2025-03-01

Merack

起身向荒原

点赞
下一篇 >

归档

  • 2025 年 3 月
  • 2025 年 2 月
  • 2024 年 12 月
  • 2024 年 6 月
  • 2024 年 4 月
  • 2021 年 5 月
  • 2020 年 6 月

分类

  • Code
  • CTF
  • Linux
  • 建站
  • 未分类

COPYRIGHT © 2024 Merack. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

cloudflare upyun 提供CDN服务