keijyu's blog keijyu's blog
首页
  • CRM
  • 学习笔记

    • 数据结构与算法
    • 计算机组成原理
    • 计算机操作系统
    • 计算机网络
    • 数据库
商业
个人成长
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

keijyu

喜欢折腾的IT初心者
首页
  • CRM
  • 学习笔记

    • 数据结构与算法
    • 计算机组成原理
    • 计算机操作系统
    • 计算机网络
    • 数据库
商业
个人成长
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • CRM
  • 运维案件

  • 建站

    • VuePress建站
    • 域名与网站加速
    • 学习笔记

    • 技术
    • 建站
    keijyu
    2025-04-11
    目录

    域名与网站加速

    本文基于Hexo建站,部署在GitHub Page上;现已整体搬迁到了VuePress,部署在Vercel,参见VuePress建站。

    # 1. 域名

    利用cdn进行网站加速需要一个域名。在又拍云上试了下https://chenhuizhu-0930.GitHub.io/Blog/这种是不可以的,为了网站的访问体验感,买了个便宜的域名。我用的namesilo (opens new window),一年的.top结尾的域名首次1刀,续费4刀左右,白菜价还可以。不过没想到的是换了域名之后,卜算子对于网站流量的计算都清零了哇┭┮﹏┭┮

    # 1.1 域名配置

    参考GitHub域名配置文档 (opens new window)

    注意:如果用的是Hexo,部署GitHub需要把CNAME文件放入source文件夹,直接放在GitHub上部署时又没有了。

    # 1.2 域名解析到服务器

    在域名管理器中,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 记录会将域名完全映射到另一个域名,会导致其他记录失效。

    # 1.3 域名的概念

    # 1.3.1 根域名/裸域名

    根域名(即裸域名)不能设置CNAME,需要用A记录把根域名解析到服务器。其他的子域名和主域名设置CNAME就可以。添加多条A记录可以实现负载均衡。

    # 1.3.2 子域名&主域名
    • 内容组织:可将网站不同部分或功能模块分开,如blog.example.com用于博客,shop.example.com 用于电商商店,support.example.com 用于技术支持 ,让用户快速找到所需内容,提升网站可导航性。
    • 独立运营:子域名能有独立内容、设计和设置,甚至可托管在不同服务器。企业可将博客放 blog.example.com,主网站放 www.example.com ,便于分区管理和运营。

    我给我的子域名和主域名的DNS设置如下👇(今晚把GitHub子目录下的内容搬到了主目录,so目前内容是一样的啦,后面博客更新准备只部署主站,子域名开发一个新的用途出来~)

    # 2. 网站加速

    # 2.1 GitHub + jsdelivr

    # 2.1.1 CDN

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

    # 2.1.2 jsdelivr

    阿里云和腾讯云的 CDN 与 jsDelivr 提供的都是内容分发网络(CDN)服务,其基本原理都是将内容缓存到离用户近的节点,使用户可就近获取内容,从而提高访问速度。 不过阿里云、腾讯云的CDN大都要求你的域名通过备案,所以部署在GitHub Pages上的网站是没办法使用它们的CDN服务的。 2021年由于种种原因,icp备案失效,失去了国内加速且DNS遭到污染。具体参见【杂谈】jsDelivr域名遭到DNS污染 (opens new window)

    # 2.2 又拍云的CDN服务

    可不备案,但要提供域名。加入又拍云联盟可享受其提供的cdn服务。

    # 2.3 GitHub + Vercel

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

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

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

    # 2.4 其他

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

    • Netlify托管

    编辑 (opens new window)
    #域名
    上次更新: 2025/05/29, 15:46:53
    VuePress建站
    路线资源分享

    ← VuePress建站 路线资源分享→

    最近更新
    01
    _未来玩玩
    06-06
    02
    书籍合集
    06-06
    03
    博客合集
    06-06
    更多文章>
    Theme by Vdoing | Copyright © 2025-2025 keijyu
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式