Github Page使用托管在CF上的域名

chenshan Lv1

Github Page官方文档

配置

  • Cloudflare 上:
    • chenshan.linkA 记录,指向 GitHub Pages 的 IP 地址。
    • www.chenshan.linkCNAME,指向 chenshan.link
  • GitHub 仓库中的 CNAME 文件:内容为 chenshan.link
  1. 浏览器通过 DNS 直接解析到 GitHub Pages 的 IP 地址。
  2. 浏览器向 GitHub Pages 服务器发起请求,Host 头为 chenshan.link
  3. GitHub Pages 发现:
    • CNAME 文件中声明的域名正是 chenshan.link
    • 正常返回网站内容。
  1. 浏览器通过 DNS 解析 www.chenshan.link
    • Cloudflare 的 DNS 返回 CNAME 指向 chenshan.link
    • 接着,解析 chenshan.link,返回 GitHub Pages 的 IP 地址。
  2. 浏览器向 GitHub Pages 服务器发起请求,Host 头为 www.chenshan.link
  3. GitHub Pages 发现:
    • CNAME 文件中声明的域名是 chenshan.link
    • 返回一个 HTTP 301 永久重定向,将用户引导到 https://chenshan.link
  4. 浏览器重定向到主域名:
  • 浏览器跳转到 https://chenshan.link
  • 再次向 GitHub Pages 服务器发送请求,Host 值为 chenshan.link
  1. 返回网站内容:
    • GitHub Pages 返回你的网站内容,用户看到的是 chenshan.link 的页面。
  • Github Page服务器会验证Host的值来返回正确的资源,因此仓库中的CNAME文件时必须的。我使用hexo生成静态文件并推送,这会覆盖掉在Github上生成的CNAME,因此在本地的source文件中添加CNAME文件并在 _config.ymlinlude 项下添加 -CNAME
  • 如果你配置一个顶端域名(例如 chenshan.link )和一个匹配的 www 子域名(例如 www.chenshan.link ),GitHub Page服务器会自动地创建双重定向。 例如: 如果你的 CNAME 文件包含 chenshan.link,那么 www.chenshan.link 会定向到 chenshan.link。 如果你的 CNAME 文件包含 www.chenshan.link ,那么 chenshan.link 会定向到 www.chenshan.link 。这种自动定向只限于www,例如你在DNS配置blog的CNAME为chenshan.link,仍然无法通过blog.chenshan.link来访问博客。
  • 标题: Github Page使用托管在CF上的域名
  • 作者: chenshan
  • 创建于 : 2024-11-30 17:56:51
  • 更新于 : 2024-12-05 22:29:56
  • 链接: https://chenshan.link/2024/11/30/CF托管域名/
  • 版权声明: 版权所有 © chenshan,禁止转载。
评论
目录
Github Page使用托管在CF上的域名