博客成长日志 | 服务器迁移
本文记录迁移过程备忘,方便后面再次迁移
前言 ¶
阿里云 ECS 学生机要过期了,由于自己曾经升级过 ECS 的带宽(从 1M 到 3M),所以不能享受续费优惠,无奈之下,只能选择进行服务器迁移。备选的方案有腾讯云 CVM、阿里云轻量应用服务器和硅云 ECS。
硅云最早被 Pass,毕竟和前面两家大厂相比不论是产品可选择性还是可靠性都略显不足,只能放在次要选择。腾讯云有学生优惠,2H4G3M 服务器 400 + 一年,还可以同样价格续费,很实惠。不过最终综合价格和便捷,还是选择了阿里云,初购 96 / 年的轻量应用服务器,毕竟我的 RDS 数据库和 OSS(被我用又拍云云储存顶替了)都是阿里云的。
准备 ¶
买好服务器后,首先配置一下 shh 免密码登录,方便后面的过程进行。
下一步查看一下有哪些东西需要进行迁移。我的服务都已经添加了监控,可以直接在监控 - 服务看到:
仔细清点过后,需要进行迁移的服务有:
- API-Img: 图片、视频等静态文件 API,阿里云 OSS -> 又拍云云储存
- API-Waline: 评论后台,ECS -> swas
- Site-Blog: 博客主体,ECS -> swas
- Site-Editor: 在线编辑器,ECS -> swas
- Site-Guard: ServerStatus,ECS -> swas
- Site-Travel: 旅行地图,ECS -> swas
迁移 ¶
API-Img¶
根据又拍云文档创建云储存服务,更改 asset.foolishfox.cn 的 CNAME 的解析,备份文件即可。
Site-Blog¶
又进行一次之前的迁移,可以看之前的文章。
为了方便下一步的安装,可以选择安装 n
进行 Node.js
的版本管理,另外还可以更改 npm
源为淘宝源,加快下载、安装速度。
Site-Editor¶
进行了上一步之后,服务器已经安装好了 Node.js
环境,剩下的只需要安照文档安装即可。
使用 pm2
启动后,需要设置 Nginx
反向代理,方便通过域名进行访问。例如 winwin-hexo-editor
运行在 8900 端口,设置 write.foolishfox.cn
的反向代理为 127.0.0.1:8900
。
Site-Guard¶
ServerStatus 一开始是一个老外的项目,可以理解为多服务器探针、多服务器云监控。后来国人进行了汉化和修改,我这里使用的是 nyawork 开发的 ServerStatus-Hotaru 版本。安装十分简单,只需要下载好文件,按照步骤进行即可。
1 | root@vultr:~# wget https://raw.githubusercontent.com/nyawork/ServerStatus-Hotaru/master/status.sh |
因为要从 Github 下载文件,所以安装速度比较慢。例如下载 master.zip
,可以打开 status.sh
文件找到下载链接,下载好之后更改文件名为 master.zip
,再上传到 /tmp
文件夹下,这样速度会快很多。除了 master.zip
,还有一个文件是 jq
,事先创建好 /usr/local/ServerStatus
文件夹,将下载好的文件重命名后放在该文件下。
要修改的话,可以直接更改 /usr/local/ServerStatus/server/config.json
文件,重启 status.sh
即可。
API-Waline¶
waline 是由 lizheming 开发的博客评论系统,是最难配置的一部分。Waline 有多达 48 钟部署方式,下面介绍两种部署方式:
Docker¶
由于有自己的服务器和数据库,最开始选择了 Waline/client+Docker+MySQL 的方式进行部署。
- 修改
Node.js
淘宝源 - 构建镜像
1 | git clone https://github.com/lizheming/waline.git |
- 修改配置
packages/client/.env
1 | SITE_NAME=Fox Home |
- 运行镜像
1 | docker run --env-file ./packages/client/.env -p 8360:8360 -d lizheming/waline |
- 设置反向目录代理,将
waline.foolishfox.cn
指向127.0.0.1:8360
独立部署 ¶
由于方便对配置进行修改,不需要更新镜像等原因,后来弃用了 Docker 部署,改为直接使用 Node.js
运行。
- 安装 waline
1 | mkdir walinejs && cd walinejs |
- 编辑
.bashrc
,添加环境变量,最好将字符串用"
或者'
包起来,避免$
、&
等字符的影响 - 创建软链接,方便后续操作
1 | ln -s node_modules/@waline/vercel ./waline |
- 配置服务端
vim config.js
1 | module.exports = { |
- 修改主程序
vanilla.js
1 | const path = require('path'); |
- 使用 pm2 运行程序
1 | cnpm install -g pm2 |
- 设置反向目录代理,将
waline.foolishfox.cn
指向127.0.0.1:8360