GiHub Page + Cloudflare + NameSilo 的域名配置
Table of Contents
简介
先是折腾了一下 GitHub Page 的子项目,目的是可以让博客和其他项目分开(比如我想做的一些教程),分别用不同的模板。详见:GitHub Page 多项目。
老早就想有一个自己的域名 —— 主要还是之前用的好友的域名买设备施展魔法,然后发现速度不行,还是得用人家的服务。折腾 GitHub Page 多项目的时候发现有些文章提到子域名,这么一想感觉也挺合适。于是在好友的推荐下给自己的博客买了个域名,这里记录一下过程。
域名购买
好友推荐了几个厂商,口碑都不错,如下:
- Domain Names, Websites, Hosting & Online Marketing Tools - GoDaddy SG
- porkbun.com | An oddly satisfying experience.
- alldomains.hosting | Web Hosting & 400+ Domains kaufen | 1A Qualität
- Cheap Domain Names & Web Hosting Starting at $0.99! | NameSilo
最终我选择了 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]。
托管域名服务器
回到 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 错误了。
(但是我这几个月都没设置,它也好好的,这几天才发现访问不到)