GiHub Page + Cloudflare + NameSilo 的域名配置

简介

先是折腾了一下 GitHub Page 的子项目,目的是可以让博客和其他项目分开(比如我想做的一些教程),分别用不同的模板。详见:GitHub Page 多项目

老早就想有一个自己的域名 —— 主要还是之前用的好友的域名买设备施展魔法,然后发现速度不行,还是得用人家的服务。折腾 GitHub Page 多项目的时候发现有些文章提到子域名,这么一想感觉也挺合适。于是在好友的推荐下给自己的博客买了个域名,这里记录一下过程。

域名购买

好友推荐了几个厂商,口碑都不错,如下:

最终我选择了 NameSilo ,一个是它比较实惠,二是我在它找到了 .icu 的后缀,我更没有理由不拿。

购买过程就很简单,注册帐号,搜索域名,认准之后就下单,选择支付宝支付,这就到手了。

具体可以参考这篇文章:Namesilo 域名购买及使用教程(附 Namesilo 优惠码) - 知乎,里面连配置都给说了。

注意看好价格呀,它一般首年会优惠,之后回到正常价格,所以别看人家很便宜,然后直接买个好几年。支付的时候也注意一下,别搞错了。

域名配置

配置也可以参照域名购买那一章贴出的文章。

因为 NameSilo 它家的管理界面很老,有些不习惯,不小心就找不到按钮 —— 它按钮藏在很像广告的框框里,并不是我眼睛不好。

进入域名管理 Manage My Domains ,在右上角那里

点对应的域名右边那个蓝色小球球。

进去之后先把默认的配置删了,然后自己手动配置。

找到自己的域名要指向的 IP 。比如我是为了用在 GitHub Page 上的,所以先 ping 站点的 GitHub 的 IP ,目前结合网上的资料,现在 GitHub 这 4 个 IP 没变过:

选其中一个建一条 A 记录。

我可以再建一条 CNAME 用来指向 example.com 或者 <name>.github.io 。也可以配置两条 A 记录,参考:Namesilo DNS 域名解析教程和常见问题解决方法汇总 - 知乎

至此,域名就配好了。

Cloudflare 接管

虽然是在 NameSilo 注册的域名,但是我想把它托管到 Cloudflare[1]

注册站点

新添加一个站点,把域名填进去,

一系列操作后拿到两条 Name Server (NS) 的记录:

  • chance.ns.cloudflare
  • gloria.ns.cloudflare.com

托管域名服务器

回到 NameSilo ,勾域名前面的勾,然点上面的 Change NameServer (我真的觉得整个页面充斥着一股广告味儿)[2]

把里面默认的三条记录删掉,然后把 Cloudflare 的两条域名服务器添加。

一旦 Cloudflare 接管之后,原来在 NameSilo的那些记录就用不了了,需要的 CLoudflare 去管理。

Cloudflare 域名解析

在 Cloudflare 的 DNS 配置中添加如下记录:

  • A 记录,名字 你的域名 ,地址 185.199.108.153
  • A 记录,名字 你的域名 ,地址 185.199.109.153
  • A 记录,名字 你的域名 ,地址 185.199.110.153
  • A 记录,名字 你的域名 ,地址 185.199.111.153
  • CNAME 记录,名字 WWW ,目标 <name>.github.io, <name> 是你 GiHub 的名字

配置 HTTPS

在 SSl/TLS 里的 Edge Certification 里选上 Always Use HTTPS.

Github Page 自定义域名

最后在 Github Page 设置自定义域名即可。

问题记录

301 无限循环

我刚配好 Cloudflare 的时候出现了这个问题,那就是请求域名的时候,放回的全是 HTTP 状态码 301 ,然后跳转的 location 还是当前的链接,最终导致无限重定向。

这个问题有前辈之前遇到过并记录了,感谢[3]

简单说,就是更改一下 Cloudflare 的 HTTPS 的策略。

无效 TSL ,状态码返回 526

问题情景我忘记截图了,去网上借了一张 [4]

折腾了一波,最后找到了答案,感谢前辈们 [5] , [6]

首先检查 GitHub Page 的设置,在输入了自定义域名之后,下面有个 Enforce HTTPS ,但是我勾不了,旁边有一行解释:

Unavailable for your site because your domain is not properly configured to support HTTPS

但具体没说为什么,给了一个 FAQ 的链接也没说清楚。我去 ping 了我的域名的地址,发现返回的是 Cloudflare 的地址。根据文章的建议,修改 Cloudflare 的域名解析的代理模式,在添加新条目时,它默认是 Proxied, 我把所有的都关了,变成 DNS Only. 等一会儿之后再 ping 就能解析到 Github 的地址上面。

最后,先把 Github Page 之前填写的自定义域名删掉,等 <name>.github.io 能够正常访问之后再重新配一次。然后它提示说正在处理,等个 15 分钟(still 忘记截图),过了一会儿之后再回来就可以勾选 Enforce HTTPS 了。

这时候再次访问域名就没有 526 错误了。

(但是我这几个月都没设置,它也好好的,这几天才发现访问不到)

Powered by Org Mode.