基于阿里云服务器+Hexo搭建个人博客
服务器
阿里云
域名与SSL
腾讯云的域名购买+备案
阿里云DNS解析(腾讯云解析已设置托管到阿里云,那边不生效)
httpsok自动续费SSL(但免费版有额度,考虑切换到certbot)
博客搭建系统
hexo
步骤
- 在本机使用NodeJS npm安装即可
同步方式
hexo deploy(git)
步骤
本机
生成ssh密钥对(注意目录权限要正确,700和600,否则拒绝连接),并将公钥上传到服务器
配置文件
服务器端
新建目录用于存储博客,如~/mine/blogs
新建仓库用于同步数据,如在家目录下
git init --bare hexo.git
新建post-receive钩子,用于在接收到内容后复制到blogs目录下
- 注意:**post-receive钩子只有在git内容更新时才执行!**被这个耽误了好久,还以为是Git版本不支持之类的问题。
配置服务器(这里以nginx为例)
- 在443端口的解析中,将根目录设置为上面新建的目录
Windows Terminal ssh连接服务器时,过一段时间不操作就会断连(卡住)的问题:是由于Windows Terminal不会自动发送心跳包,可参考此文章解决。
图床
利用同机房OSS+服务器实现免外网流量、安全传输。
步骤
- 详见此篇博客
评论系统
使用utterances,参考文章,valine每次还要输入有点麻烦,gitalk配置较麻烦,于是选用同样基于Github Issue的utterances,hexo原生支持,很方便。
博客备份
上次搭建博客的时候用的是基于Github的方案,没有备份博客的源文件仓库(.md等),仓库里只有hexo生成的博文(即.deploy_git
文件夹),难以恢复。这次重新搭建之后,痛改前非,参考此文章,基于用Hexo事件实现每次hexo d
的时候,也自动把源文件提交到另一个仓库,这样以后即使换了电脑也不怕博文丢失,并且还可以实现异地写作。
此外,用另一个hexo工程新建个人学术页面后,同理将其同步到同一仓库的academia分支上,以后约定都同步在此仓库。
参考链接
Hexo+阿里云,手把手教你如何搭建属于自己的个人博客(超详细) - 到站了还不下车的文章 - 知乎
https://zhuanlan.zhihu.com/p/126243913