迁移 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
如果你想留言,可以在微信里面关注公众号进行留言。