GitHub CNAME 的作用

内容来源

GitHub仓库里的CNAME文件,核心作用是告诉GitHub Pages服务器,当用户通过你的自定义域名(比如 www.example.com)访问时,应该展示哪个仓库的网站内容

你可以把它理解为在GitHub内部为你的域名和特定仓库建立的一个“认领”和“关联”关系。它需要在你的域名解析服务商(如阿里云、Cloudflare)设置的DNS解析配合下才能正常工作。

⚙️ 如何工作

当用户在浏览器输入你的自定义域名(如 www.example.com)并访问时,流程如下:

  1. DNS解析:用户的请求首先会去DNS服务器查询www.example.com指向哪里。你需要在DNS服务商那里添加一条 CNAME记录,将 www.example.com 指向 你的用户名.github.io。这一步把域名指向了GitHub的服务器。
  2. 请求到达GitHub:请求到达GitHub的服务器后,服务器需要知道这个请求是给哪个仓库的。
  3. 读取CNAME文件:此时,GitHub会检查所有启用了Pages的仓库,寻找根目录下名为CNAME必须大写)的文件。
  4. 匹配与响应:当GitHub在你的仓库里找到的CNAME文件内容(例如www.example.com),与用户请求的域名完全匹配时,它就知道要把这个仓库的网站内容返回给用户了。

🌐 仓库和服务商 CNAME 比较

两者的关系:分工明确的“钥匙”与“路标”。这两者缺一不可,它们共同完成从“自定义域名”到“具体 GitHub 仓库”的映射。

组成部分 作用概括 配置位置 关键点
仓库 CNAME 文件 “钥匙”:授权并告诉 GitHub,哪个域名可以访问这个仓库 仓库根目录下的 CNAME 文件 内容必须与 DNS 记录的子域名一致,且只能有一个域名
DNS CNAME 记录 “路标”:将互联网流量从你的域名指向 GitHub 服务器 域名注册商/DNS 服务商的管理后台 通常用于 www 子域名,指向<用户名>.github.io

📌 重要补充

转载请注明出处