小白互助😄

Oh,我的网站好慢呐

网站搭在 Github 的最大缺点是网页访问速度慢,为了解决这个问题,可以借助 CDN。

网页为什么慢,简单地说,就是服务器(Github服务器在国外)和客户端(访问网站的用户)距离太远,资源拉取慢。

CDN,即内容分发网络。它的功能是将指定的资源提前缓存到分布在各个城市的站点(缓存服务器)。这样一来,在用户在访问网站后,数据将直接从距离最近的服务器中获取,无需再从原来那个远在天边的源服务器获取(如果它真的远在天边的话)。

ok,那么接下来的问题就是找到一个能白嫖的 CDN 了,嘻嘻。

jsdelivr(已弃用)

现在该轮到今天的主角了——jsdelivr

配置这个服务极其简单,不需要下载任何软件、申请任何账号,甚至只需要在浏览器的地址栏,按照要求的格式输入一串代码(其实就是一个网址/url),即可将你 Github page 上的网站文件上传到 jsdelivr 的服务器,然后使用他们的 CDN 服务进行加速。

如果你的网站也搭建在Github,那么下面的内容对你会有所帮助。

首先,为你的 Github 仓库发布一个 release 版本(只有这样才能使用 jsdelivr)(很简单,需要自行上网搜一下),然后在浏览器的地址栏输入下面的代码:

注意:下面“你的Github名”、“你的仓库名”、“@发布的版本号”都需要你按照自己的仓库来填写,你可以参考该文章末尾处最后一个实例代码。

  • 如果想上传仓库文件库的某个版本:
    • https://cdn.jsdelivr.net/gh/你的Github名/你的仓库名/@发布的版本号/
  • 如果想上传版本中的某个文件:
    • https://cdn.jsdelivr.net/gh/你的Github名/你的仓库名/@发布的版本号/文件名+后缀
  • 如果想上传版本中的某个文件夹:
    • https://cdn.jsdelivr.net/gh/你的Github名/你的仓库名/@发布的版本号/文件夹名/

注意结尾的 / 号是必须有的,否则不会成功。

成功后会出现已上传的文档页面。然后你可能就会发现自己的网页打开速度飞快,至少比上次快。

使用以下代码可以直接上传整个仓库的文件,并且实时更新文件,而不是一次上传一个版本,事实上,我觉得这是最方便的做法。

https://cdn.jsdelivr.net/gh/你的Github名/你的仓库名/

后来,一段时间后我才发现,去掉版本号可以直接上传整个仓库🤷‍♂️ 实时更新真的太爽了。

新方案:cloudflare

2023-07-30,将新域名使用 cloudflare 进行CDN托管,速度大大提高。

Github Page + 自定义域名 + Cloudflare 配置顺序:

  1. 购买域名,等待实名认证通过;
  2. 在 Github Page 的 Settings 的 Pages 的 Custom domain 中输入新域名;
  3. 进入 Cloudflare 账户主页,点击“添加域”,输入新域名;
  4. 新域添加 DNS 记录,参考下文的 DNS 的“记录”的内容;
  5. 进入购买域名的平台,修改域名的 DNS,两个值在 Cloudflare 的 “DNS”的“记录”底部查看,为“Cloudflare 名称服务器”;
  6. 等待 1 小时左右,CDN 配置成功后会有邮件提醒;
  7. 为 Github Page 的 Settings 的 Pages 的 “Enforce HTTPS”打上对勾;
  8. 检查并修改下文的设置,使一致。

使用 cloudflare 后,Github Page 与 cloudflare 的相关设置:

github page 设置

  • 自定义域:xxxxxx
  • 强制实施 HTTPS:✅

Couldflare 设置

  • DNS
    • 记录 - CNAME www username.github.io 仅DNS (先输入这个) - A @ 185.199.111.153 已代理 - A @ 185.199.110.153 已代理 - A @ 185.199.109.153 已代理 - A @ 185.199.108.153 已代理
    • 设置
      • DNSSEC:关闭!(必须关闭,否则会陷入“重定向”错误的坑)
  • SSL/TLS
    • 概述
      • 配置加密模式:完全
    • 边缘证书
      • Total TLS:✖
      • 始终使用 HTTPS:✅
      • HTTP 严格传输安全(HSTS):关闭(未启用)
      • 最低 TLS 版本:TLS 1.0 默认
      • 随机加密:✖
      • TLS 1.3:✅
      • 自动 HTTPS 重写:关闭/开启(不影响,建议开启)
      • 证书透明度监视:✖(未测试)
      • 禁用通用 SSL:关闭(未禁用)