GitHub: GitHub pages 绑定阿里云域名
原文地址: http://quantumman.me/blog/setting-up-a-domain-with-gitHub-pages.html
本文以我自己的域名为例,我的域名为 yangshun.win,我的主页文件夹为 busyboxs.github.io
第一步:创建CNAME文件夹
在你的个人博客仓库的根目录中(username.github.io)新建文件CNAME(注意没有后缀),在该文件增加一行文字,告诉 Github Pages 服务器你想指定的域名。该域名不能包含前缀信息,即不能添加 http:\\
前缀。
每个 CNAME 文件能且只能指定一个域名。更多关于增加 CNAME 文件的信息可见 Adding a CNAME file to your repository。
第一步的目的是,Github读取你的CNAME之后,Github服务器会设置yangshun.win
为你的主域名,然后将busyboxs.github.io
重定向到yangshun.win
,当你访问yangshun.io
时,就相当于访问busyboxs.github.io
。
第二步:CNAME绑定域名
登录阿里云,进入控制台,找到域名
在域名解析中添加如图所示的解析
默认使用阿里云提供的万网DNS服务器。当然你也可以使用DNSPOD提供的DNS服务器,这样可以使你的域名在国外更快速的传播。当你使用DNSPOD提供的DNS服务器时,除了DNS服务器不一样以外,其他的设置(比如A记录和CNAME记录)均相同。以下我们简要分析我们所添加的A记录和CNAME记录的含义。
在域名解析中,A记录就是直接指定一个IP,CNAME就是重命名,指向另一个域名。
在阿里云控制台,设置主机记录www,记录类型为A,记录值是IP
192.30.252.153
。其中192.30.252.153
是Github Pages服务器指定的IP地址,访问该IP地址即表示访问Github Pages。在阿里云控制台,设置主机记录www,记录类型为A,记录值是IP
192.30.252.154
。同上。在阿里云控制台,设置主机记录@,记录类型为CNAME,记录值是
busyboxs.github.io.
。表示将http://yangshun.win
这个主域名映射busyboxs.github.io
。在这里千万不要忘记记录值中.io后面还有一个点.!但是很多时候,我们只想将子域名绑定到博客地址。比如如果你想将
blog.maindomain.com
(即博客子域名地址,主域名地址是 www.maindomain.com )映射到busyboxs.github.io
,那么在主机记录中就应该填写blog,记录类型为CNAME,记录值是busyboxs.github.io
。因为你的主域名已经默认为maindomain.com
,所以主域名和主机记录合起来就是blog.maindomain.com
。而且这个时候,你github项目的CNAME文件内容也应该相应的改为blog.maindomain.com
,因为你是想将busyboxs.github.io
和blog.maindomain.com
绑定起来,而不是和www.maindomain.com
绑定。如果你想将
www.maindomain.com
(即主域名地址)映射到busyboxs.github.io
,那么主机记录就是www,记录类型是A,记录值是具体的IP地址(在我们这个例子中是192.30.252.153
、192.30.252.154
)。因为你的主域名已经默认为maindomain.com
,所以主域名和主机记录合起来就是www.maindomain.com
。
你可以将多个域名都映射到xxxxx.github.io之类的你自己的站点上,但是需要新建不同内容的CNAME文件。
注意,.me已经是顶级域名(和.com、.org等域名是同一级的),所以需要使用A记录进行域名解析。
第二步的目的是,告诉所有DNS服务器,对于yangshun.win
的访问都会被重定向到busyboxs.github.io
。
第三步:漫长的等待
要全球解析生效,得等上一会了,也可以先ping一下自己的设置对不对。阿里云域名服务的工作原理是,在你更新了域名解析之后,首先是阿里的万网云解析,然后传播到各大运营商的DNS服务器,刷新DNS缓存,至此你的域名可以被访问。