建站过程github pages
建站架构
建立本站采用的是namesilo的域名(续费比较便宜),dns服务由dnspod提供,服务器由github pages提供。所以只有的一个域名要钱 ~
Namesilo
选个便宜的域名,可以用支付宝支付。如果dnspod设置好url了,dnspod会提供两个url让你改namesilo的name server,填上去就行。
域名续费可以直接点renew的按钮,一次性可以续好几年,美元汇率低的时候多续几年?
dnspod
dnspod配合github pages需要解析主机记录。如果是@记录,比较推荐这种,就直接是A类型,挂两个github的ip地址,四选一,这样可以方便https解析
1 | 185.199.108.153 |
如果是子域名记录,需要改为CNAME类型,挂xxx.github.io的地址,这里xxx是github的用户名。因为尝试过用A类型,但是github pages不支持解析,并提示要CNAME。
WWW记录也是有必要加的,如果域名是aaa.bbb,那么主机记录为www,类型CNAME,挂xxx.github.io的地址。如果是子域名aaa.bbb.ccc,那么主机记录为www.aaa,类型CNAME,挂xxx.github.io的地址。
ssl证书申请并不是主域名申请完,子域名也用同样的主域名的证书。每个主域名和子域名都需要单独申请。至于有没有用,dnspod可以看ssl图标有没有变为绿色,如果是绿色,代表证书启用。
github pages
本站的架构启用的是hexo的静态页面架构处理,因为github pages不支持动态页面加载,都已经免费了,还要什么自行车。hexo + npm安装插件,具体命令hexo的repo有给:https://hexo.io/
主题的更换也非常方便,本站采用的是shoka主题:https://github.com/amehime/hexo-theme-shoka
顺序为先弄完hexo再装载对应的主题。
首先需要在github上建立xxx.github.io的repo,xxx是用户名。建完后,push一个index.html上去,浏览器打开xxx.github.io的链接就可以看到index.html内容。注意这里浏览器的地址只有http,其次域名是github.io的子域名。
所以我们着重要讲的是域名转写,由github配合dnspod完成,dnspod前面有讲,这里不赘述。github在repo的settings的选项,左侧倒数的选项中有pages的这个设置,这里可以设置域名,如果是子域名,就是dnspod对应的域名解析记录的子域名,这个必须一致。save过后,github会自动检测dns的设置。注意这个域名与repo中的CNAME文件挂钩,如果CNAME文件push后改变,那这里的域名也会随之而变。当自己的域名检测通过后,可以开启https选项,点击下方的Enforce HTTPS的选项,貌似dnspod的ssl证书没有,也能自动开启?最好也申请对应的域名/子域名的ssl证书。当然这样弄完的话,即使输入xxx.github.io也会自动跳转设置好的域名。
有时候https会显示不正确,即打开对应域名地址,浏览器不信任域名的ssl证书。一般是github没有更新ip的问题,具体参考:https://www.jianshu.com/p/739742f3afc4
先在github上或者hexo本地的public中删除CNAME文件,然后上传改动。之后重新添加,这样github会重新build项目的主页。另外注意所有hexo中config里面的http域名地址都必须改为https前缀,否则会有失效的可能。
到此,基本的配置就已完成。