记录一次把云服务器应用迁移到本地群晖NAS上的经历

最近我的一台腾讯云服务器到期了,但是我并不打算进行续费,不巧的是服务器上运行了几个重要的服务,比如Mysql和一些WebAPI应用,虽然手里还有一台云服务器,但是并不想把这些服务迁移到小水管似的云服务器上了,因为这些服务并不需要80和443端口,迁移过去还会占用本就不太够用的服务器带宽。

所以我想到把这些服务迁移到我之前买的一台群晖NAS上,因为群晖NAS上有docker容器并且家里宽带也有动态公网IP,正好这些服务又用不到80端口,对连接稳定性也没那么高的要求,所以一切基础条件都是符合的,虽然会多出一点电费,稳定性也没云服务器那么高,但是契合我当前的需求,说干就干。

首先备份所有Mysql数据库,在docker中下载pch18/baota:latest镜像(至于为什么使用宝塔面板,主要还是博主Linux系统玩的不是很熟练,也不想因为部署环境花很多时间)启动镜像后把宝塔的账号、密码、端口等一些基础配置搞定,具体的过程就不详细写了,然后安装mysql、Nginx、PHP、Pure-Ftpd、phpmyadmin等常用的数据库+网站运行环境,把数据库和一些静态站点全部从云上迁移到宝塔面板上。

搞完数据库和静态网站的迁移部署,然后问题就来了,我的很多应用服务是用.Net Framework开发的,而Linux系统没有IIS,这些应用源码理论上都玩完了,不过这并阻止不了我,在前期我就已经想到这个问题了,所以就提前把这些应用全部升级为了.net core,然后注册Hubdocker,把应用都打包成镜像到HubDocker上,接着直接在群晖NAS里的Docker上下载镜像,启动就完事了,后面证明我的思路没错,一路绿灯。

因为我之前在刚拿到群晖NAS机器的时候,已经使用别人Docker的镜像解决了动态DDNS解析的问题,原理很简单,就是定时检测本机公网IP是不是发生了变化,如果变化了就调用阿里云提供的API,把指定域名解析到新IP就行了,不过我发现目前用的这个扫描周期有点久,后面有时间还是自己做一个比较稳妥。

到此,这次迁移工作就告一段落了,抛去稳定性不讲,私有云还是香多了,云服务器2m、3m、5m的小水管压根比不上家里30m的上行,写这篇文章的时候,机器已经稳定运行半个月了,通过这次迁移工作,自己又学到了挺多东西,最后再象征性的大喊一句:私有云YYDS!(重要的生产应用还是得上云)

附一张Docker运行图,不得不说Linux资源占用率真低:

THE END