记录一次站点搬家 静态资源分离到OSS等完整记录
作者:FancyPig | 发布时间: | 更新时间:
客户需求
- 将
阿里云上的站点搬家到新的腾讯云上 - 将
阿里云上discuz站点的图片附件挂载到阿里云的OSS上(使用ossutil通过内网上传,可以从2天的时间减少到半个小时完成上传)
实战教程
配置腾讯云环境
下载阿里云备份
- 远程下载网站站点备份资料

打包后建议重命名一下,否则如果有扫描器,很容易把我们整站的数据下载走

然后在新的腾讯云创建对应的站点,并将上述压缩包进行远程进行下载


这里下载速度有些慢,跟之前的服务器带宽有关系,如果你在转移很大存储的服务器时,你可以在阿里云后台选择临时升级带宽或者临时调整成流量模式。

上述操作完成之后,进行解压缩,然后我们回到旧的阿里云服务器将刚才data文件里的部分资料进行打包
这里attachment和avatar我们要单独打包传到oss里

打包好的其他文件按照前面的方法,继续下载到新的腾讯云服务器中站点的data目录中并解压缩,这里不再赘述。
- 远程下载数据库备份资料
一般数据库备份有2种方法,可以在phpmyadmin中导出sql格式的文件,也可以直接打包带索引的源文件,我们这里选择后者,出错概率低一些。
首先,我们需要找到数据库存储的位置,宝塔面板一般默认在/www/server/data,但是这里可以看到,但是这里可以看到明显数据库的数量和后台显示的不一样。


这说明客户存储的数据库位置不是宝塔默认的,我们可以前往软件商店>Mysql设置>存储位置
这里可以看到客户其实是以前wdcp的用户转的宝塔面板,然后数据库是放在wdcp面板默认的路径里了

这里进入www/wdlinux/mysql-5.5.54/data将所有的数据库进行压缩,然后复制到阿里云服务器的网站根目录里,方便后面的远程下载。

在新的腾讯云服务器上,进入www/server/data目录远程下载刚刚打包好的数据库文件

上传OSS并配置nginx
新建Bucket目录
先创建Bucket目录

设置域名
在cdn后台,添加域名

选择新增源站信息,这里添加OSS域名,找到我们创建的bucket域名

然后进入cdn的域名管理,我们需要按照右侧的要去配置域名的CNAME解析


然后如果你要使用https访问,我们需要配置一下证书,具体证书申请的步骤这里不再赘述了。
我们这里默认你已经会申请证书了,然后进入CDN后台,点击管理

选择修改配置


上传文件到OSS
我们需要在里面上传刚打包的attachment文件
我们这里客户图片和附件数据打包50多个GB,带宽就5-6MB,要手动下载大概要花20个小时的时间

这里客户比较着急,我们尝试通过阿里云服务器下载ossutil工具,直接从服务器里上传到OSS(这样就省去了下载到本地,再上传到OSS的时间了)
wget http://gosspublic.alicdn.com/ossutil/1.7.7/ossutil64
chmod 755 ossutil64

然后我们需要生成配置文件
./ossutil64 config
第一个配置文件路径和stsToken可以留空不填,其他变量按需填写

配置完成后,开始上传目录(勘误:这里一开始少填了data在截图里有具体的错误,不过并不影响,大家在写命令的时候一定要注意哦!)
./ossutil64 cp -r /www/web/ddgbr_com/public_html/data/attachment oss://bbs-ddgbr/data/attachment
这里是通过阿里云内网ENDPOINT上传,速度可以达到20MB/S-45MB/S,原本我们需要花费1-2天时间,这里可能半个小时就能完成附件的转移

这里大概花了40分钟,完成了50GB文件的迁移

新的腾讯云服务器一些配置
https证书配置
先在网站管理>站点修改>SSL里申请Let's Encrypt的https证书(当然你也可以去腾讯云申请一个1年的SSL证书,这个看个人习惯)

nginx配置链接替换
在配置文件里,我们需要使用sub_filter模块在nginx里替换内容,把网站的attachment路径的内容全部替换为OSS上的
sub_filter_once off;
sub_filter bbs.ddgbr.com/data/attachment static.ddgbr.com/data/attachment;

数据库配置文件修改
这里一般要看我们搬家使用的系统有哪些数据库配置文件,针对于discuz主要有
- config/config_global.php
- config/config_ucenter.php
- uc_server/data/config.inc.php
我们需要将里面的数据库账户和密码重新设置好,跟新的服务器里提供的密码一致即可。
这里简单讲解一下,我们刚才传好了数据库文件,现在需要点击从服务器获取

然后,可以在这里设置新的密码

然后分别填入上面的三个文件中对应位置,这里仅以config_global.php举例,其他的文件修改方法一致。

修改域名解析
最后一步就是把域名解析到新的服务器上,然后就大功告成了!
如果你是懒人,可以使用泛域名解析,使用A类解析将*和@解析到IP地址


为了验证解析是否生效,可以ping一下

如果IP地址还是之前的服务器,我们可以考虑使用ipconfig /flushdns重置一下dns或者重启电脑都可以。
Discuz远程附件上传到阿里云配置
下载ossftp,解压缩然后运行

需要在宝塔后台将8192端口进行放行

然后我们就可以访问了

我们这里需要设置好Bucket endpoints

进入阿里云OSS后台,找到我们的bucket目录。
如果你是阿里云的服务器,你可以选择内网节点,如果不是阿里云的服务器选择外网、或者加速传输域名。

然后重启后配置生效

但是关闭终端这个启动页就关掉了,因此我们需要通过宝塔的堡垒应用管理器

在后台设置启动文件start.sh


同时设置远程附件
