# 服务器迁移计划 ## 新旧对比 | 项目 | 旧服务器 (1panel-server) | 新服务器 (47.109.203.92) | |------|------------------------|-------------------------| | 系统 | - | Debian 13.5 | | CPU | - | 2 核 | | 内存 | - | 1.6 GiB | | 磁盘 | - | 40G (可用 36G) | | 区域 | - | 成都 | | 角色 | 当前生产+开发 | 目标生产+开发 | ## 阶段 1 — 基础设施安装 ### 1.1 安装 Docker ```bash apt update && apt install -y docker.io docker-compose-v2 ``` ### 1.2 启动 PostgreSQL ```bash docker run -d --name postgres \ --network host \ -e POSTGRES_PASSWORD=password \ -v /var/lib/postgresql/data:/var/lib/postgresql/data \ postgres:17.6-alpine ``` 创建数据库:milkydata、milkydata_dev ### 1.3 从旧服务器迁移数据库 ```bash # 旧服务器导出 pg_dump -Fc milkydata > /tmp/milkydata.dump # 新服务器导入 pg_restore -d milkydata /tmp/milkydata.dump ``` ### 1.4 启动 OpenResty ```bash docker run -d --name openresty \ --network host \ -v /www/sites:/www/sites \ 1panel/openresty:1.21.4.3-3-3-focal ``` ### 1.5 复制 SSL 证书 + nginx 配置 ```bash rsync -av root@1panel-server:/www/sites/ /www/sites/ ``` ## 阶段 2 — 后端部署 ### 2.1 创建 systemd 服务(blue/green/dev) ```bash # 创建目录 mkdir -p /root/rust/rust_backend_blue mkdir -p /root/rust/rust_backend_green mkdir -p /root/rust/rust_backend_dev # 注册 systemd service(从 deploy/ 目录上传) ``` ### 2.2 部署 Rust 后端 ```bash # 先部署到 dev 验证 cd ASD-backend/rust-backend deploy.sh development --remote-host 47.109.203.92 # 再部署 blue/green deploy.sh production --remote-host 47.109.203.92 ``` ### 2.3 更新 deploy.sh 将默认 REMOTE_HOST 改为新服务器 IP ## 阶段 3 — 切换 ### 3.1 内部验证 ```bash curl http://127.0.0.1:8080/health # dev curl -k https://127.0.0.1:4433/health # blue curl -k https://127.0.0.1:4434/health # green ``` ### 3.2 更新 DNS 将域名指向新服务器 IP ### 3.3 验证公网访问 ```bash curl https://dev.xmclassmate.top/health curl https://xmclassmate.top/health ``` ## 阶段 4 — 清理(可选) - 迁移 GlitchTip (Sentry) - 旧服务器保留 1 周作为回退 - 确认无问题后关闭旧服务器