零基础搭建个人博客(叁)

域名的购买与解析

在我们建立与Github仓库的联系以后,实际上我们已经拥有了一个属于自己的个人网页。

接下来就可以选择是否绑定属于自己的域名。

最好在博客正式投入前完成。域名购买的决定,如果在投入使用之后再选择绑定域名,会导致一些问题。

绑定域名时间过晚的问题

如果绑定域名的时间过晚,但是之前的原有域名example.github.io已经被搜索引擎收录。

那么将会导致引擎收入的页面有可能出现无法重定向打开的情况,而且会出现一些冗余结果。

而且会导致文章浏览次数统计,访问量,访客数量都会清零。

所以尽可能在正式投入使用之前决定是否绑定域名。

购买域名

域名是自由的,任何人都可以拥有任意的域名。但是域名转换服务器只会将有协议的域名和IP地址进行转换。

因此严格的准确的说,购买域名其实是在购买域名和IP地址的转换权。

想深入了解请浏览这篇文章:关于github个人网站绑定域名的原理分析和操作 | Windeling

平台

国内比较著名的平台有阿里云腾讯云

根据自己的喜好即可,域名价格大多相同。

推荐阿里云,因为可以获得免费的数字证书,这样就不会有「不安全」的标记了。

获得证书的具体方法参见:

域名后缀

常用的域名后缀有.com .com .top .net

.com:最普遍和为人所知的域名,价格在¥70-80不等。

.com:强调中国公司,需要中国证件购买,¥35-40。

.top:最便宜的域名后缀,¥20-25。

.net:网络的首字母,价格在¥50-60左右。

所有域名都是以年作为单位购买的,所以平均每月约2-7元。

操作

用阿里云平台举例,说明大致流程,其他平台的UI设计可能有所不同,但尽量保证做到相同的设置。

首先,创建账号。

接着进行实名认证,注意,阿里云有多个实名认证,需要仔细区分:

  • 账号实名认证

  • 实名认证模版认证

  • 域名实名认证

对于域名,需要的是域名实名认证,需要账号实名认证作为前提。

由于阿里云和支付宝是同一平台的,所以登录,认证,支付都基本上要使用支付宝,请提前做好准备。

但是,如果只认证这个域名,是不用实名认证模版认证的,此模版认证后可以通用,虽然更方便,但是审核周期更长,而且个人用户一般只会购买一个域名,这个模版更多是针对有大量业务的企业的。

而且模版认证不等于域名认证,还要再次提交认证。

所以进行两个认证就可以了。

  • 账号实名认证(支付宝扫码)(瞬时)——域名实名认证(填写信息)——审核信息(2-5分钟)
  • 账号实名认证(支付宝扫码)(瞬时)——模版实名认证(填写信息)——审核信息(5-7小时)——通过模版进行域名认证(瞬时)

注意,由于中国政府的关于互联网的相关规定,域名如不实名认证,将会被注册局暂停解析服务,相当于不能使用

认证以后,就可以添加解析了。

解析域名

域名的解析需要转到控制台,填写如下记录。

1
2
3
4
5
6
7
8
A @ 185.199.108.153
A @ 185.199.109.153
A @ 185.199.110.153
A @ 185.199.111.153
A WWW 185.199.108.153
A WWW 185.199.109.153
A WWW 185.199.110.153
A WWW 185.199.111.153

A代表是IPv4地址,@代表不加www的域名,如example.com,www代表域名的全称,如www.example.com

这样无论访问者加不加WWW,都可以解析到正确的IP。

详细的分析参见关于网络www前缀对DNS解析影响的分析 | Windeling

注意:如果只添加@或www,则使用另一种方式将无法访问!!

这四个IP地址是Github的常用IP,最好全部添加,万一Github换用服务器(经常性行为),就会导致无法访问。

image-20230929112957898

而且所有的github.io的个人网站的IP地址其实都是相同的。

原因在于这所谓的「网站」其实都是github服务器上的一个仓库,服务器的IP地址都是github的。

如果不太相信,也可以用cmd的ping命令来ping一下自己的仓库,IPv4地址肯定是上面四个中的一个(除非github换服务器了)

如果是以:连接的IP地址,是IPv6地址,可以在结尾加-4强行获得IPv4地址。

ping example.github.io -4

那么这时候似乎就产生了一个bug:如果我们绑定了github的IP,以后域名的解析就都会解析到github的首页。

所以github的设计者们就想出了这样一个办法:(www.example.com 为示范域名,而example.github.io为仓库)

  • DNS服务器解析www.example.com 后,返回github服务器的IP。
  • 客户端访问IP,并传递域名参数 www.example.com
  • github服务器处理请求,并且根据域名参数寻找对应的库
  • 将仓库的页面返回给客户端,完成请求。

所以关键之处就在于给仓库添加一个域名参数。

添加域名参数

可以在guihub上面手动添加我们的域名参数,但这个方法不够安全稳定,而且难以修改。

因此建议在本地文件中的source文件夹中新建一个文本文档,里面写上自己购买的域名。(有无www都可以)。

image-20230929113552785

然后将此文件保存并删除txt后缀。

一定要将其重命名为CNAME,等待下一次部署便可自动修改。

注意:文件中如果加入WWW,则最后在地址栏显示的是www.example.com ,即使用户输入了example.com,反之亦然。

至此,git仓库的名称已经换成了你的域名,即使输入example.github.io也会重定向到你的域名。

可能有坑

绑定性

……即使输入example.github.io也会重定向到你的域名。

这就意味着域名如果无法解析,io也无法访问。

所以一定要保证域名能够正常使用。

认证性

如果不实名认证,域名将会被停止解析,因而出现没有找到DNS的报错提示。

b7b8dbc26f7f67387b96ecab57c7c959

劫持

在购买域名时,如果没有购买专门的DNS解析服务,那么使用的是公共的DNS服务器。

这样可能会被劫持,造成跳转错误。

具体可以搜索:DNS劫持与污染

WWW问题

如果加上或删去www后,发现DNS解析错误,可能是只添加了一部分的解析,请在控制台添加完整解析即可。

参见本章「解析域名」一节。

详细原因分析在关于网络www前缀对DNS解析影响的分析 | Windeling

安全性问题

绑定域名后,会发现域名变成了「不安全」的状态。

原因和免费的修复方法参见关于绑定域名后通过阿里云SSL证书进行安全认证的方法 | Windeling

小结

到此,已经建立了一个仓库,并且绑定了一个属于你的域名。

接下来,就要开始装饰仓库了!!

零基础搭建个人博客(肆) | Liam’s boring life


零基础搭建个人博客(叁)
https://blog.windeling.com/202309296d16578d/
作者
黄文林
发布于
2023年9月29日
更新于
2025年5月10日
许可协议