如题

配置

  1. 使用 github pages,要将项目名命名成这样,以用户名 uncleAndyChen 为例:uncleAndyChen.github.io,这样,就可以直接用项目名访问个人博客了:http://uncleAndyChen.github.io

    请注意,自定义域名生效之后,该方式会失效,也就是说,配置好自定义域名且生效之后,就只能通过配置的域名访问。

  2. 以绑定已经备案过的域名 lovesofttech.com 为例,在配置页面配置好之后,会有如下提示:

    1
    Your site's DNS settings are using a custom subdomain, lovesofttech.com, that's not set up with a correct CNAME record. We recommend you set this CNAME record to point at [YOUR USERNAME].github.io. For more information, see https://help.github.com/articles/setting-up-a-custom-domain-with-github-pages/.

  3. 到域名管理页面,添加 CNAME 解析记录,指向自己的 Github Pages 域名,例如 uncleAndyChen.github.io,域名指向生效之后,域名绑定就完成了。

经验

  • 首先被绑定的域名需要已经备案,为了备案,需要先找一家网站托管商,比如我用的是阿里云的云服务器 ECS。如果云服务器到期,可以考虑将个人博客转至 githu pages,免费还相对稳定,更新也比较简单。
  • blog 更新

    • gitee 上的 hexo blog,之前需要在本地 hexo g(编译)之后,再 hexo d(发布)至某一个分支,pages 设置的时候选这个分支即可。前两天我重新配置的时候,发现官方已经直接支持 hexo blog 了,md(markdown)文档 push 之后,会自动触发在线编译,这样,在本地就少了两步操作,即 hexo g(编译)之后,再 hexo d(发布至某一个分支)。
    • github 暂时还没有发现在线编译功能,我的做法是,把 md 文档托管到 gitee(可以 private,也可以 public,而 github 的 private 项目需要收费),然后,本地 hexo g 之后生成的目录,即 public 目录作为 github 的 blog 项目,需要更新的时候,直接按如下操作即可:

      • 在源代码(众多 markdown 文档)目录,执行 hexo g
      • 到编译生成的 public 目录,在 git 客户端执依次行

        1
        2
        3
        git add .
        git commit -m 'update blog ...'
        git push
      • 可将以下脚本存为 .sh 文件,需要更新的时候,双击执行即可。没错,就是在 windows 下,我的系统是 win10,双击之后,弹出来的窗口,就是 git Bash 窗口。

        1
        2
        3
        4
        5
        6
        cd ..
        hexo g
        cd public
        git add .
        git commit -m 'update blog ...'
        git push

域名的【主机记录】要不要配置 www?

  • 一般我们的域名配置,要配置两个,一个【主机记录】是 www,另外一个是【@】,以我的域名 lovesofttech.com 为例,这样配置对应的网站地址分别是:www.lovesofttech.comlovesofttech.com,这样做是为了照顾不同人群的习惯,有一部分人群记住域名之后,访问时一般要先输入 www,实际上,以 www 开头是一个二级域名,其实可以配置成不以 www 开头即可访问,比如我访问百度的习惯就是直接输入 baidu.com

    至于在浏览器地址栏输入 baidu.com 回车之后,会自动跳转至 www.baidu.com,这个可以在服务器上配置,一般的 web 服务器(比如 nginx)都支持。

  • 那么,为了照顾不同人群的不同习惯,我的 github pages 也想配置带 www 和不带 www 的自定义域名。但是,结果是不支持。通过 github pages 配置了 lovesofttech.com,我再配置一个 www.lovesofttech.com 时,会得到如下错误:

参考:Troubleshooting custom domains -> CNAME already taken

  • github pages 只能配置一个顶级域名
    • 如果配置了 lovesofttech.com,就不能再配置 www.lovesofttech.com
    • 同样的,配置了 www.lovesofttech.com,就不能再配置 lovesofttech.com

终极解决方案

这里我们一共要配置两个域名,一个是顶级域名,一个是 www 开头的二级域名。假设已经在 github pages 配置好了二级域名:www.lovesofttech.com

添加顶级域名(主机记录不填或者填@即为顶级域名)的【CNAME】或【302重定向】记录,将【记录值】设置成二级域名:www.lovesofttech.com。来解决 www.lovesofttech.com 不能正确指向的问题。

用该方法还可以随意定义二级域名来指向同一个博客网站。

阿里云域名管理

可添加【CNAME】或【302重定向】解析,这里以【302重定向】为例。


京东云域名管理

只能用【CNAME】解析。在域名解析方面,京东云没有阿里云的选项多,解析选项里,是没有 【302重定向】的。

其实,用 【CNAME】跟用【302重定向】的效果是一样的,都是重定向,只是重定向的方式不一样而已,这两种方式对用户而言是没有什么区别的,有区别的,应该是搜索引擎。

启用 HTTPS

  1. 参考文章:Custom domains on GitHub Pages gain support for HTTPS
  2. Github 使用了 Let’s Encrypt 提供的免费 SSL 证书
  3. Linux下使用acme.sh申请和管理Let’s Encrypt证书