Hexo 实现多地部署及优化访问速度

这几天因为服务器快过期了,就想着把博客从 WordPress 迁移到 Hexo 上来.一是因为 1M 的小水管跑 WordPress 加载速度有点点慢,再就是因为就我个人来讲更习惯 Hexo 这种本地写作再 Push 的方式(主要是以后万一还要迁移的话导出方便,不想 WordPress 都不支持 Markdown, 还得自己手动装插件,而且插件还有不兼容的地方)

但是 Hexo 主体文件是部署在本地的,而我写作的环境有多个(一台装着 Ubuntu 的电脑, 还有一台笔记本). 所以就需要两边相互同步,这样才方便

这里我们需要用到 GitHub 或者是其他的代码托管服务.笔者这里选择了 GitHub腾讯开发者平台 来托管我的代码.

GitHub 放静态网页其实不是最优选择,一是因为百度不爬取 GitHub pages, 二是因为 GitHub 在国外,虽然可以通过*修改Hosts提升访问速度, 但是修改了自己Hosts的毕竟是很少很少一部分. 所以笔者建议 GitHub 只用于代码托管(因为其他的代码托管服务说不定什么时候就崩了,部署在 GitHub 上总是不会错的)

先是去网上查了一下,结果发现大多数采用的方案都是在一个 git 仓库里开两个分支. 一个放静态网页, 一个放源码. 但是这样其实是很不安全的! 在 Hexo 中我们为了方便会加一些插件,而某些插件会用到第三方平台.比如笔者博客中的评论功能( Power by Valine ) 就用到了 LeanCloud 的服务. 将评论内容, 访问量等信息存储在容器里,而这个容器的 Token万万不能给别人的. 而网上的通用方案因为仓库公开, 所以任何人都能看到你在里面设置的 Token, 这样是不行的, 下面笔者将给出自己的方案


前置

  • 已成功安装 Hexo 和 npm
  • 已成功安装 git 并添加进环境变量中
  • 已成功将自己的公钥添加进 GitHub(可用ssh -T git@github.com测试)

多地部署

首先,我们要去 GitHub 创建两个 repository ,其中一个命名为 xxxx.github.io 并设为 Public, 如下图所示(没有帐号的请自行学习注册帐号并学习 GitHub 的使用)

这里需要注意的是,笔者已经创建过名为 bestsort.github.io 的 repo 了,所以再创建会报该 repo 已存在(记得勾选 Initialize this repository with a README 初始化)

这个仓库就是别人以后访问你网页时候所使用到的仓库了

我们还需要一个仓库存源码,再新建一个权限为 Private 的仓库
,以后我们要重新部署就从这个仓库里 Clone 下来.

这里我的私有仓库命名的是 my-blog ,所以我们在本地进入放置 Hexo 的地方,执行 git remote set-url origin https://github.com/bestsort/my-blog.git 这里记得将链接中的 bestsort 替换为你自己的 GitHub 用户名,将 my-blog 替换为你放博客的私有仓库名

然后我们打开 Hexo 的配置文件 ~/_config.yml 注意这里是全局配置文件,不是主题配置文件.将 deploy 配置如下:

配置里面的仓库名填刚才创建的 公共仓库 的名称

这里笔者由于为了提升国内访问速度,所以在 腾讯开发者平台 也创建了一个仓库,就是下面的第二个 type

1
2
3
4
5
6
7
8
deploy:
#这里记得替换掉链接中的用户名和仓库名
- type: git
repo: git@github.com:bestsort/bestsort.github.io.git
branch: master
- type: git
repo: git@git.dev.tencent.com:bestsort/bestsort.git
branch: coding-pages

至此,多地部署已经设置完成.

每次更改或者创建新文章后,需执行以下命令:

1
2
3
4
5
hexo g
hexo s
git add .
git commit -m '提交备注'
git push

因为是多地部署,所以每次修改前最好是执行 git pull 命令拉取远程仓库

在新环境中部署

执行 git remote set-url origin https://github.com/bestsort/my-blog.git 老样子,替换用户名仓库名

然后再执行npm install 即可写作了

觉得文章不错的话可以请我喝一杯茶哟~
  • 本文作者: bestsort
  • 本文链接: https://bestsort.cn/2019/07/19/719/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-SA 许可协议。转载请注明出处!并保留本声明。感谢您的阅读和支持!
-------------本文结束感谢您的阅读-------------