当前位置 : 首页 » 文章分类 :  开发  »  Hexo博客(01)GitHub Pages创建博客并绑定域名

Hexo博客(01)GitHub Pages创建博客并绑定域名

什么是 Github Pages?

Github Pages 是 Github 的静态页面托管服务。它设计的初衷是为了用户能够直接通过 Github 仓库来托管用户个人、组织或是项目的专属页面。
Github Pages 的限制:

  • 仓库存储的所有文件不能超过1GB;
  • 页面的带宽限制是低于每月100GB或是每月100,000次请求;
  • 每小时最多只能部署10个静态网站;

1 建立 username.github.io 项目

GitHub Pages 分两种:

  • 一种是 username.github.io 这样的用户或组织站(user or organization site),目的是用户或组织的介绍
  • 另一种是依附于项目的站(Project site),目的是该项目的介绍页。

用户或组织站一个用户名下只能建立一个,新建一个名称为 username.github.io 的 repository,注意 username 必须和账号的用户名完全相同。建立好后在 master 下提交一个 index.html,即可使用域名 username.github.io 访问。

项目站目的是为了用户介绍自己的某个项目,在每个项目中都会有一个 gh-pages 分支,在 gh-pages 分支中提交页面,即可使用 username.github.io/projectname 域名访问。

个人博客用哪种 pages 都行,最后用独立域名指向它,没什么区别。我们这里使用的是 username.github.io 用户名站。

2 配置 CNAME 文件

如果不想使用 username.github.io 作为博客域名,可以给博客绑定一个独立域名。
需要在项目根目录下配置一个CNAME文件。在 username.github.io 项目的根目录下新建一个名为 CNAME 的文件,注意文件名必须大写,文件内容形如:masikkk.com,注意只要裸域名,不需要 https://。并且,CNAME 文件中只能有一个域名,不能同时绑定多个域名。


CNAME文件

3 配置 DNS 解析到 github 服务器

可以选择 A 记录或 CNAME 记录,A 记录指向具体 IP,CNAME 记录指向另一个域名,使用 CNAME 解析可享受 Github pages 的 CDN 加速。

你先想一个问题:那么多人都要在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作用不同,不是一个概念,不要混淆。

  • 配置A记录
    在自己域名提供商的DNS解析中增加一条A记录配置,地址为192.30.252.153192.30.252.154,由于pages使用了CDN,我们可以用dig username.github.io命令来查看自己账号的具体IP并配置。github pages IP可能改变,在https://help.github.com/articles/troubleshooting-custom-domains/ 中查看变化。
  • 配置CNAME记录
    添加 CNAME 记录,指向 username.github.io,能够享受 GitHub pages 的 CDN 加速。

    我的域名解析配置

4 创建 index.html 进行测试

创建一个简单的 index.html 文件,上传到 username.github.io 项目 master 目录,访问自己的域名即可看到。


参考


上一篇 Hexo博客(02)安装Hexo生成博客并部署到GitHub

下一篇 Linux-系统目录

阅读
评论
1.1k
阅读预计4分钟
创建日期 2016-03-18
修改日期 2017-06-21
类别

页面信息

location:
protocol:
host:
hostname:
origin:
pathname:
href:
document:
referrer:
navigator:
platform:
userAgent:

评论