Github pages 支持A记录解析

首先什么是Github pages?

引用一句话:

Hosted directly from your GitHub repository. Just edit, push, and your changes are live.

大概是说Github pages是Github提供给开发者、组织和项目的网站主机,这个网站直接由你的github仓库发布运行,你只需要编辑、推送你的代码就行,你对代码的更改会实时的体现在网站的页面中。

那么为什么要说到Github pages的A记录解析功能,它到底解决了什么,在说Github pages A记录解析之前,先说说这次万网域名解析上遇到的一个冲突。

问题从何处来

是这样的,为了正常收信,注册的企业邮箱(域名邮箱的一种)需要对邮箱服务器域名进行MX解析,要求主机记录为@,只不过@已经被CNAME解析到http服务器,要进行MX解析,CNAME死活不答应。只能二选一,经过一番沉痛的取舍,决定要保留企业邮箱。那么就是要舍弃CNAME咯,可是不想舍弃,更不能舍弃,因为百度收录的入口就是不带www的主页,郁闷,舍弃后就不能通过百度入口访问本站点。

于是想通过跳转的方式访问本站,试了下显性URL,不行,提示未备案(?)。试了下百度站长网站改版,不行,生效太慢了。参考解析记录提示冲突的网面,发现MX记录和A记录不冲突,当下只有对根域名A解析才能访问主站。可是网站托管的应用容器是公用IP(BAE基础版)的,没有独立IP只能CNAME了,难道没有办法了吗?

如果有一个公网IP可以用来部署代码呢?有,Github pages可以,而且尽管不是独立IP,仍然支持A记录

Github pages解决了什么

使用Github pages可以支持自有域名解析,让不带有www的根域名变得可以访问,间接解决了CNAME和MX冲突在问题,使百度到的悠趣网可以访问。

在Github pages上部署网站代码

先登录到github,然后在github上new一个个人网站代码仓库,假设我的github用户名为wisetc,我的网站代码仓库就是wisetc.github.io。

$ git clone https://github.com/wisetc/wisetc.github.io
$ cd wisetc.github.io/
$ curl baidu.com | sed 's/baidu/uqugu/g' > index.html
$ cat index.html

然后就是存放域名的CNAME文件

$ echo 'uqugu.com' >CNAME

上传代码到github.com/wisetc/wisetc.github.io

$ git add -A
$ git commit -m 'cname for uqugu'
$ git push -u origin master

域名解析A记录

ping wisetc.github.com找到其IP为185.31.17.133

|记录类型|主机记录|解析线路|记录值|MX优先级|TTL|
|--------|--------|--------|------|--------|---|
|A|@|默认|185.31.17.133|10分钟|

哪些问题没有解决?

因为部署在http://wisetc.github.io上的代码很简单,只有index.html这一个文件,因此只是对根域名主页进行了跳转,对于省略了www其它的页面则会出现404找不到的情况。这就需要自定义一个404页面,在这个页面中给出一个给网站首页的链接,或者利用js进行跳转。

404 Not Found

因为是经过github进行跳转,所以访问速度会慢很多,影响体验。

关于本文如您有任何想法和意见,欢迎与我们联系,邮箱地址zhi@uqugu.com
您对本文有什么看法,喜欢或者不喜欢都可以发表意见。