域名

利用cdn进行网站加速需要一个域名。在又拍云上试了下https://chenhuizhu-0930.github.io/Blog/这种是不可以的,为了网站的访问体验感,买了个便宜的域名。我用的namesilo,一年的.top结尾的域名首次1刀,续费4刀左右,白菜价还可以。

域名配置

参考Github域名配置文档

注意:Hexo部署github需要把CNAME文件放入source文件夹,直接放在github上部署时又没有了。

域名解析

在域名管理器中,CNAME 记录和 A 记录是两种常见的 DNS 记录类型,它们的主要区别如下:

  • 定义与作用
    • A 记录:A 记录是将域名直接映射到一个 IPv4 地址。例如,当你访问www.example.com时,通过 A 记录,域名系统会将其解析为服务器的具体 IP 地址,如192.168.1.100,这样浏览器就能找到目标服务器并获取网页内容。
    • CNAME 记录:CNAME 记录是将一个域名指向另一个域名,而不是直接指向 IP 地址。它常用于为某个域名创建别名。例如,你可以创建一个 CNAME 记录,将blog.example.com指向www.example.com,这样访问blog.example.com时,实际上会访问到www.example.com对应的网站内容。
  • 使用场景
    • A 记录:适用于需要明确指定域名对应的服务器 IP 地址的情况,比如网站、邮件服务器等。当你拥有自己的服务器,并希望通过域名来访问服务器上的服务时,就需要设置 A 记录。
    • CNAME 记录:常用于以下几种情况。一是当你使用第三方服务,如 CDN(内容分发网络)服务时,CDN 提供商通常会要求你创建一个 CNAME 记录,将你的域名指向他们的服务器地址,以便实现内容的缓存和分发;二是为了方便管理域名,你可以为多个子域名创建 CNAME 记录,指向同一个主域名,这样在主域名的 IP 地址发生变化时,只需修改主域名的 A 记录,而无需逐个修改子域名的记录。
  • 解析优先级
    • A 记录:在域名解析过程中,A 记录的优先级较高。当 DNS 服务器收到一个域名解析请求时,会首先查找该域名是否有 A 记录,如果存在,则直接返回 A 记录对应的 IP 地址。
    • CNAME 记录:如果域名没有 A 记录,DNS 服务器才会查找 CNAME 记录。找到 CNAME 记录后,它会根据 CNAME 指向的目标域名继续进行解析,直到找到最终的 A 记录或其他可解析的记录类型。
  • 限制与注意事项
    • A 记录:一个域名可以有多个 A 记录,这意味着可以将同一个域名指向多个不同的 IP 地址,实现负载均衡等功能。但每个 A 记录都必须对应一个有效的 IPv4 地址。
    • CNAME 记录:一个域名不能同时存在 A 记录和 CNAME 记录(除了根域名可以有 A 记录和 CNAME 记录共存的特殊情况)。此外,CNAME 记录不能与其他类型的记录(如 MX 记录、TXT 记录等)同时存在于同一个域名下,因为 CNAME 记录会将域名完全映射到另一个域名,会导致其他记录失效。

网站加速

Github + jsDelivr加速 + CDN

CDN

CDN的本质,是将用户的请求中转到某一个中间的服务器上(书报亭)。当用户请求网站时,由这些中间服务器代替网站源服务器响应用户请求,如果用户请求的一些资源不包含在中间服务器上,那么此时再由中间服务器向源服务器请求,从而大大减少了源服务器的资源消耗。另外,CDN的负载均衡还能将用户的请求分发到最佳的中间服务器上,从而大大的加快了用户的访问速度8。

Jsdelivr

阿里云和腾讯云的 CDN 与 jsDelivr 提供的都是内容分发网络(CDN)服务,其基本原理都是将内容缓存到离用户近的节点,使用户可就近获取内容,从而提高访问速度。

不过阿里云、腾讯云的CDN大都要求你的域名通过备案,所以部署在GitHub Pages上的网站是没办法使用它们的CDN服务的。

2021年由于种种原因,icp备案失效,失去了国内加速且DNS遭到污染。具体参见【杂谈】jsDelivr域名遭到DNS污染

接下来准备试试Web缓存网下的JS CDN服务(国内阿里云CDN加速)

https://www.webcache.cn

https://code.webcache.cn

https://cdnjs.webstatic.cn

https://lib.webstatic.cn

又拍云

可不备案,但要提供域名。

gulp压缩

对于生成的css、js、html、图片等文件,可以使用gulp自动化工具进行压缩以加快网站加载速度,本文参考Butterfly官方教程,安装gulp本体以及插件

Vercel 托管

Vercel拥有自己的CDN且为全球CDN网络,而Github使用Fastly CDN作为CDN服务提供商,在中国地区的访问速度较慢,且缺乏灵活的地理路由功能。

如果你只用 Vercel 托管,通常不需要推送静态文件到 GitHub,只需推送源代码(.md 文件、配置等)即可。Vercel 会自动生成和分发静态内容。

例外情况:如果想保留 GitHub 作为备份或协作平台,可以继续推送源代码,但要避免推送 public 目录,并禁用 GitHub Pages 的自动构建。

Netlify托管

多线部署+域名映射的方式