小白互助😄
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 配置顺序:
- 购买域名,等待实名认证通过;
- 在 Github Page 的 Settings 的 Pages 的 Custom domain 中输入新域名;
- 进入 Cloudflare 账户主页,点击“添加域”,输入新域名;
- 新域添加 DNS 记录,参考下文的 DNS 的“记录”的内容;
- 进入购买域名的平台,修改域名的 DNS,两个值在 Cloudflare 的 “DNS”的“记录”底部查看,为“Cloudflare 名称服务器”;
- 等待 1 小时左右,CDN 配置成功后会有邮件提醒;
- 为 Github Page 的 Settings 的 Pages 的 “Enforce HTTPS”打上对勾;
- 检查并修改下文的设置,使一致。
使用 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:关闭(未禁用)
- 概述