[TOC]
# :-: 如何将云WAF迁移到新的服务器?
> **迁移会影响网站的访问,建议在用户访问少时操作**
> 堡塔云WAF版本最好是一致的
> 注意:检查执行的每一步是否有错误?
# 一、环境介绍
## **旧**的云WAF服务器环境:
* 操作系统:Ubuntu 20.04
* 网站域名:nw1.kern123.tk
* 服务器IP:192.168.66.156
* 登录地址:https://192.168.66.156:8379/5f0eb9aa
* 云WAF帐号与密码:5c32ce9b
*****
<br/>
## **新**的服务器环境:
* 操作系统:Debian 11
* 服务器IP:192.168.66.162
*****
<br/>
<br/>
# 二、**旧**的云WAF服务器需要做的步骤
> 首先在旧的服务器进行停止云WAF与备份
使用SSH工具登录旧的服务器,执行以下命令安装:
* 注意需要ROOT权限执行命令
<br/>
## 1. 停止WAF:
```
btw stop
```
![旧停止.png](https://img.kancloud.cn/44/eb/44ebea8b2403eb74dd4d621712dec06d_532x244.png)
<br/>
## 2. 直接打包整个目录进行备份迁移
```
cd /www/ && tar -zcvf cloud_waf.tar.gz cloud_waf
```
![旧打包.png](https://img.kancloud.cn/d9/7b/d97b69e8e8a7a054d8826681406382d3_882x140.png)
<br/>
备份成功后查看文件与验证md5值:
```
ls -ahl
md5sum cloud_waf.tar.gz
```
![](https://img.kancloud.cn/22/1b/221bd3f982d79cd01296e9f68b1afa6d_803x254.png)
<br/>
## 3.下载备份文件 cloud_waf.tar.gz
- 可以使用 Xftp、Winscp 等工具下载到本地电脑中,然后再上传到新的服务器到 `/root` 目录
> **注意检查下载的文件是否完整**
<br/>
- 或者使用scp 命令直接远程复制到新的服务器:
> 注意:将 “新的服务器IP” 更换成您的新服务器IP
> 第一次连接需要输入yes, 然后再输入新服务器的 root 密码
```
scp cloud_waf.tar.gz root@新的服务器IP:/root/
```
![scp截图.png](https://img.kancloud.cn/83/5e/835e5dd35b720bf21109f0a8dcdb0f4d_1261x198.png)
<br/>
<br/>
# 三、**新**的服务器需要做的步骤:
## 1.上传并且解压还原mysql文件
使用SSH工具登录 **新**的服务器,执行以下命令安装:
* 注意需要ROOT权限执行命令
1. 在**新**的服务器上确认备份文件是否存在?确认md5值是否一致?
```
cd /root/ && ls -lh && md5sum cloud_waf.tar.gz
```
![](https://img.kancloud.cn/db/58/db58dcd7d865bd841907c4ec270f8838_833x152.png)
<br/>
2. 解压备份文件
```
tar -zxf cloud_waf.tar.gz
```
<br/>
3. 建立目录与恢复mysql数据
```
mkdir -pv /www/cloud_waf/nginx/conf.d/waf/
\cp -arpf /root/cloud_waf/nginx/conf.d/waf/mysql_default.pl /www/cloud_waf/nginx/conf.d/waf/mysql_default.pl
mv /root/cloud_waf/mysql /www/cloud_waf/mysql
```
<br/>
4. 查看文件是否成功移动
```
ls /www/cloud_waf/mysql/
```
![新云.png](https://img.kancloud.cn/f4/0e/f40eff732c75632d26f9157790e30fa5_1361x459.png)
<br/>
<br/>
## 2. 在**新**的服务器中安装云WAF
1. **新**的服务器执行命令安装云WAF
```
URL=https://download.bt.cn/cloudwaf/scripts/install_cloudwaf.sh && if [ -f /usr/bin/curl ];then curl -sSO "$URL" ;else wget -O install_cloudwaf.sh "$URL";fi;bash install_cloudwaf.sh
```
![](https://img.kancloud.cn/b8/32/b83296af1b2dea2a146c16703d42738e_899x167.png)
> 注意:这里请忽略显示的登录信息,因为下面会将旧的云WAF数据恢复到新的服务器中。
<br/>
2. 安装成功后,等待5秒,停止云WAF
```
sleep 5 && btw stop
```
<br/>
3. 等待5秒后,恢复旧云WAF的数据
```
sleep 5 && \cp -arpf /root/cloud_waf/* /www/cloud_waf
```
> **注意:查看是否有错误**
<br/>
4. 查看文件是否成功复制
```
ls -l /www/cloud_waf
```
<br/>
5. 启动云WAF
```
btw start
```
> 注意: **检查是否启动成功**
![新云2.png](https://img.kancloud.cn/c8/39/c83908954602645fb495ef422b7dbafc_971x579.png)
<br/>
## 3.登录新的云WAF
查看云WAF登录地址信息,可以查看到仅更换了IP,其他信息没有改变。
```
btw 6
```
![新btw6.png](https://img.kancloud.cn/8d/81/8d8127f4fcf73a0b405d9fabc72f6b32_916x285.png)
<br/>
使用显示的登录地址来登录云WAF
如:https://192.168.66.162:8379/5f0eb9aa
> 注意:请使用旧的云WAF帐号与密码进行登录,如果忘记了可以使用 `btw 10` 命令重置密码
<br/>
<br/>
## 4.检查云WAF功能是否正常?
如何检查:可以检查旧的云WAF有数据的界面,比如
- 首页概览
- 拦截日志
- 操作日志
- 网站列表
拦截日志:
![](https://img.kancloud.cn/e2/76/e27627c0342af144d67a92e0c2e1f429_1769x416.png)
<br/>
如果不正常将**无数据显示** 或者 **请求出错,请稍后再试**
在**新**的云WAF中执行`btw 18`命令检查是什么原因导致的
<br/>
**正常请继续下一步**
<br/>
<br/>
## 5.检查网站是否正常?
首先将域名的A记录解析的IP 更换为 新服务器的IP
- 即将 旧的云WAF服务器IP: 192.168.66.156 更换为新的云WAF服务器IP: 192.168.66.162
- 等待解析生效后测试访问您的域名,如: http://nw1.kern123.tk
<br/>
通过以下方式查看新的云WAF服务器是否有生效:
- 首页概览 --> 今日请求数
- 网站列表 --> 今日访问/拦截
- 网站列表 相关域名 的日志是否有内容
> 如果没有记录,建议检查更换的域名A记录解析是否生效?解析记录是否正确?
<br/>
**网站是否正常需要您自行检查,可以随意点击几个功能来测试是否正常**
<br/>
**如果没有问题,这么迁移就完成了。**
确认没有问题后,您可以选择删除解压出来的文件了,同时建议保留备份压缩文件。
`rm -rf /root/cloud_waf`
<br/>
<br/>
# **教程总结**
- **旧**的云WAF服务器:
1. 停止云WAF
2. 备份云WAF
3. 下载备份文件
<br/>
- **新**的云WAF服务器
1. 上传备份文件
2. 解压备份文件
3. 建立相关目录
4. 恢复mysql数据
5. 安装云WAF
6. 停止云WAF
7. 恢复云WAF
8. 启动云WAF
9. 检查云WAF是否正常
10. 更换域名A记录解析
11. 检查网站是否正常
<br/>
<br/>
# **如果是同一台服务器,需要重新安装操作系统如何备份恢复?**
> **不需要**:更换域名A记录解析
> 基本上与迁移到新的服务器相同
- 在云WAF服务器操作流程:
1. 停止云WAF
2. 备份云WAF
3. 下载备份文件
4. 重新安装操作系统
5. 上传备份文件
6. 解压备份文件
7. 建立相关目录
8. 恢复mysql数据
9. 安装云WAF
10. 停止云WAF
11. 恢复云WAF
12. 启动云WAF
13. 检查云WAF是否正常
14. 检查网站是否正常
<br/>
<br/>
# **不同的系统架构如何迁移?**
> 如:x86_64 迁移到 aarch64
只需在 **启动云WAF:btw start** 之前执行更新命令 `btw 17` 更新一次即可,会自动下载相应的架构文件覆盖。
如果不更新会出错无法启动,错误信息:/www/cloud_waf/console/CloudWaf: cannot execute binary file: Exec format error
<br/>
<br/>
如使用中有问题,请联系我们:
**加入微信讨论群**
<img width="239" alt="image" src="https://bt-1251050919.cos.ap-guangzhou.myqcloud.com/btwafGroup.png">