Fork me on GitHub
tc9011's

终于有自己的域名啦

20161113558020150107035434_dFJtQ.jpeg

双十一大家都在买买买的时候,有一个小码农也不甘寂寞,默默地在Namecheap上买了一个域名,完成了双十一的剁手之旅。

剁手之旅参照了新版Namecheap注册域名详细教程,还是比较简单的。不过我的域名解析用的是DNSPOD,没有用Namecheap的域名解析,这样国内的用coding访问,国外用github访问,可以加快网站访问速度。

Github的设置比较简单,在/hexo/source中添加一个CNAME文件,注意不需要后缀名,里面内容就写tc9011.com,不要写www。然后去github page上绑定一下域名,DNS解析的话我是这样设置的:

20161113211692016-11-13_13-45-34.png

下面说一下新版的coding绑定域名的问题,我发现这是一个大坑啊~~

我直接访问tc9011.github.io地址会跳转到tc9011.com,
我直接访问tc9011.coding.me发现不会跳转到tc9011.com这个域名,原因我搜了一下,答案如下:

github只能绑定一个域名,所以访问tengj.github.io时,github的服务器知道要往tengj.top跳转。coding可以绑定多个域名,当绑定多个域名时,访问tengj.coding.me,coding的服务器不知道要往哪里跳转,所以干脆就不跳转了。但是当绑定一个时,为什么不跳转,可能是coding觉得麻烦,就不跳转了。这些都是coding定的,我们没办法改变。

你先想一个问题:那么多人都要在github上搞博客,还要自定义域名。github哪来这么多ip给你们用?所以办法就是仅仅提供一个ip,这样必然导致这个服务器上发着所有人的博客文件,那么如何区分特定的域名应该展示谁的博客呢?答案就是在仓库里面新建一个CNAME文件,里面写上你博客想用的域名,github的服务器会根据当前http请求的Host头部(即域名),查找对应的包含相同的CNAME内容的目录,从而显示其中的页面。这就是为什么要在仓库里面创建一个CNAME原因。

不过,事情还没完,一个ip的问题是世界各地不同地点的访问速度不同,有些地方可能很慢,所以需要一组ip来分担一下。最早github好像只有2个ip,后来ip变多了。再后来,github支持域名解析的时候,通过alias来。比如在域名商那边设置成www.tengj.com ---> tengj.github.io,由于github无法控制你如何配置域名和ip的关系,但他可以控制tengj.github.io的最终ip解析,所以github推荐大家使用alias解析,可以为博主提供就近ip访问。这就是你在域名商那边配置CNAME或者alias的原理。这里的CNAME跟上面提到的CNAME作用不同,不是一个概念,不要混淆。

还有就是coding.me的现在是指向国外的,不像以前是指向国内的,我也是醉了~

要把博客同步到coding,首先要在coding里面新建一个与你Global Key(也就是个性后缀)一样的项目,然后修改博客根目录下面的_config.yml文件中的deploy如下(注意缩进):

2016111337932016-11-13_14-04-45.png

和github一样配置ssh,过程就不详细说了,比较简单。比较重要的是,在source/需要创建一个空白文件,至于原因,是因为 coding.net需要这个文件来作为以静态文件部署的标志。就是说看到这个Staticfile就知道按照静态文件来发布。

1
2
cd source/
touch Staticfile #名字必须是Staticfile

接下来在coding pages服务中绑定域名,注意分支一定要写master。

20161113140112016-11-13_14-16-35.png

最后去DNSPOD上设置一下域名解析:

20161113755222016-11-13_14-20-33.png

然后检测一下域名解析是否正确,国内解析到coding,国外解析到github,后面国外的解析很多是解析到美国 Fastly公司CDN网络节点,这个就是github的解析,所以国内的解析估计就是coding了,虽然也是指向国外,ORZ。

20161113644562016-11-13_14-27-09.png

tc9011 wechat
欢迎订阅我的微信公众号
坚持原创技术分享,您的支持将鼓励我继续创作!
------ 本文结束 ------

版权声明

tc9011's Notes by Cheng Tang is licensed under a Creative Commons BY-NC-ND 4.0 International License.
汤诚创作并维护的tc9011's Notes博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于tc9011's Notes 博客( http://tc9011.com ),版权所有,侵权必究。