零基础搭建个人博客(叁)
域名的购买与解析
在我们建立与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 |
|
A代表是IPv4地址,@代表不加www的域名,如example.com,www代表域名的全称,如www.example.com
这样无论访问者加不加WWW,都可以解析到正确的IP。
详细的分析参见关于网络www前缀对DNS解析影响的分析 | Windeling
注意:如果只添加@或www,则使用另一种方式将无法访问!!
这四个IP地址是Github的常用IP,最好全部添加,万一Github换用服务器(经常性行为),就会导致无法访问。
而且所有的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都可以)。
然后将此文件保存并删除txt后缀。
一定要将其重命名为CNAME
,等待下一次部署便可自动修改。
注意:文件中如果加入WWW,则最后在地址栏显示的是www.example.com ,即使用户输入了example.com,反之亦然。
至此,git仓库的名称已经换成了你的域名,即使输入example.github.io也会重定向到你的域名。
可能有坑
绑定性
……即使输入example.github.io也会重定向到你的域名。
这就意味着域名如果无法解析,io也无法访问。
所以一定要保证域名能够正常使用。
认证性
如果不实名认证,域名将会被停止解析,因而出现没有找到DNS的报错提示。
劫持
在购买域名时,如果没有购买专门的DNS解析服务,那么使用的是公共的DNS服务器。
这样可能会被劫持,造成跳转错误。
具体可以搜索:DNS劫持与污染
WWW问题
如果加上或删去www后,发现DNS解析错误,可能是只添加了一部分的解析,请在控制台添加完整解析即可。
参见本章「解析域名」一节。
详细原因分析在关于网络www前缀对DNS解析影响的分析 | Windeling
安全性问题
绑定域名后,会发现域名变成了「不安全」的状态。
原因和免费的修复方法参见关于绑定域名后通过阿里云SSL证书进行安全认证的方法 | Windeling
小结
到此,已经建立了一个仓库,并且绑定了一个属于你的域名。
接下来,就要开始装饰仓库了!!