迁移 VPS 服务器记录

作者: | 更新日期:

服务器换了一台机器,迁移操作记录一下。

本文首发于公众号:天空的代码世界,微信号:tiankonguse

零、背景

大概 3 月份的时候,我开始购买并持续续费 VPS 服务器。

端午节的时候,发现一个项目的耗时有点长,画出架构一分析,发现服务器在美国东部,而依赖上下游服务都在美国西部。

端午在休假,暂时没时间来迁移服务器。
服务之后工作也比较忙,也没找到时间来迁移服务器。

现在到周末了,终于可以换一个服务器了。

一、redis 数据迁移

对于个人小项目,数据库是直接安装在服务器上的。
所以最重要的是先搬迁数据。

于是我问 ChatGPT,redis 复制数据都有啥方法。

考虑到这个项目访问量比较小,我采用 RDB 文件导入的方式来实现的。

当然,也没有按 ChatGPT 建议的方法,而是直接把 rdb 文件放在新 redis 的 rdb 文件目录,启动 redis 服务即可。

二、nodejs 服务迁移

服务器默认的 Nodejs 版本比较低,我是使用 nvm 来下载最新版本的。

所以需要先安装 nvm。

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

source ~/.bashrc

nvm install node

nvm install 18.0.0

之后拉取网站的代码,编译与启动。

git clone myproject
npm install # 安装依赖
npm start

当然,我的网站并不是直接启动的,而是使用 pm2 管理进程的。
所以需要安装 pm2,并启动服务。

sudo npm i -g pm2

# 启动服务
pm2 start npm --name myproject -- start

三、nginx 服务迁移

nginx 比较简单,网站的配置和证书复制过去即可。

sudo yum install -y nginx

scp /etc/nginx/sites-enabled/domain.com user@newip:/etc/nginx/sites-enabled/domain.com
scp domain.com.key user@newip:/home/ubuntu/www/domain.com_cert/
scp fullchain.cer user@newip:/home/ubuntu/www/domain.com_cert/

sudo nginx -s reload

我的证书是使用 acme.sh 管理的,配置上对于的任务。

9 0 * * * "/home/ubuntu/.acme.sh"/acme.sh --cron --home "/home/ubuntu/.acme.sh" > /dev/null

四、修改 DNS

登录 DNSPod,修改域名对于的 IP 即可。

五、最后

就这样,服务器就顺利完成了迁移。

简单测试,功能都可以正常使用。
查看日志,流量也都到达了新服务器。

迁移就这样结束了。

其实我有想过使用 docker-compose 来封装这些,但是后来评估后,发现有点过度设计。

我后面会把上面的操作封装为 bash 脚本,通过脚本来管理更简洁高效一些。

《完》

-EOF-

本文公众号:天空的代码世界
个人微信号:tiankonguse
公众号ID:tiankonguse-code

本文首发于公众号:天空的代码世界,微信号:tiankonguse
如果你想留言,可以在微信里面关注公众号进行留言。

关注公众号,接收最新消息

tiankonguse +
穿越