本篇内容基于自己在使用阿里云DNS解析域名,使用子域名访问不同网站(项目)
DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。
DNS是应用层协议,事实上他是为其他应用层协议工作的,包括不限于HTTP和SMTP以及FTP,用于将用户提供的主机名解析为ip地址。 具体过程如下: ①用户主机上运行着DNS的客户端,就是我们的PC机或者手机客户端运行着DNS客户端了 ②浏览器将接收到的url中抽取出域名字段,就是访问的主机名,比如http://www.baidu.com/
, 并将这个主机名传送给DNS应用的客户端 ③DNS客户机端向DNS服务器端发送一份查询报文,报文中包含着要访问的主机名字段(中间包括一些列缓存查询以及分布式DNS集群的工作) ④该DNS客户机最终会收到一份回答报文,其中包含有该主机名对应的IP地址 ⑤一旦该浏览器收到来自DNS的IP地址,就可以向该IP地址定位的HTTP服务器发起TCP连接
这就涉及了,在阿里云上配置DNS的过程。在解析参数中主机记录填写为hexoblog.maplestory.work
,后缀为本博客的域名,记录值填写maple-chan.github.io, 也就是github给的端口。如此一来就能通过该域名访问我在github中的项目。DNS解析将自定义的域名(hexoblog.maplestory.work
)和maple-chan.github.io
联系起来。
如图:
但是怎么就能通过hexoblog.maplestory.work
定位到我对应的哪一个工程呢?(maplestory.work
解析到当前博客的工程)。这就用到了CNAME
。在git项目中添加CNAME文件,内容只写hexoblog.maplestory.work
, 这样在GitPage
中就知道你这个域名要访问的是哪一个工程了。
GitHub
中CNAME文件的作用:GitHub
记录了CNAME
文件,在有请求来时查看工程中CNAME
文件下所写的域名,访问对应上得工程。
(这是我的理解,如我有错误,麻烦在GitHub上issue我吧!)