博客主机折腾记

不知不觉间又是一段时间的停更,主机换了又换,服务改了又改,这次终归是尘埃落定了。折腾博客的时候也踩了一些坑,放在这里总结下。

主机位置

一直在考虑自己应该将网站的主机放在哪里。开始的时候想放到国外,毕竟价格便宜,而且 npm 和 docker 之类也不用考虑国内镜像和国内加速的问题。但是最大的缺点:无法对域名进行备案。ICP 备案的要求是托管网站的主机在中国大陆境内,使用中国大陆 IP 地址。换句话说,就是非中国大陆的主机搭建的网站无法进行备案。

备案不只是通过审核得到一串号码这么简单。国内的搜索引擎应要求只能收录已备案的域名(链接),而且国内的部分和域名有关的服务(CDN 加速、对象存储等)也需要绑定已备案的域名。

于是反复思考,我申请了美国主机的退款,选了阿里云的杭州区。

自动构建部署

另一个主要的问题是博客的自动构建和部署。开始的时候图免费和方便,把 hexo 渲染出来的所有文件放在了公开的 Github Repo 上做成了 Github Pages,将博客的配置文件放在了另一个私有的 Repo 中。虽然这样可以利用各种支持 Github 的 CI/CD 平台进行构建和部署自动化(比如 Circle CI),但是最后由于 Github Pages 国内访问速度的原因,以及域名备案的缘故放弃。

在购买 ECS 之后就把博客放在了 ECS 上,依然用的是 hexo,更新完博客内容要 build 再 FTP 传到 nginx 的 web root 内。但是这样浪费时间,操作也相当麻烦。所以又一次的打起了 CI/CD 的主意。由于考虑到随着博客文章的增多,文章内包含的图片等使得 Repo 体积将逐渐变大,因此将 Github 上的私密 Repo 迁移到了速度更快的国内平台 Gitee 上。

之后开始尝试可用的 CI/CD 方案。首先想到的是 Jenkins。但是使用了一段时间后发现体验并不好。占用内存资源大,没法像 Circle CI 那样暂存 node_modules 来加快 package 不变时整个 hexo build 流程的效率。其次就是与 Gitee 的结合相当尴尬。为了 Gitee Push 代码时能够成功触发 Jenkins 的 Webhook,需要关闭 Jenkins 自带的 WebHook 鉴权,但这样无形之中给托管博客的主机带来了安全威胁。因此需要一个更加高效和安全的解决方案。

随后将目光重新投向 Gitee 和阿里云。Gitee 提供了一个与阿里云 CodePipeline 相连的工具,但是 CodePipeline 已经关闭,阿里云替代 CodePipeline 的工具是阿里云 云效,于是试用了一下。

关于云效

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×