博客一转眼就陪伴着我从大二到毕业,这个博客运行了很长时间,也经历了2次迁移。
第一次搬家
刚开始,这个站位于一个香港的轻量服务器。后来因为各种原因,我选择不在中国境内买服务器。
差不多这个时间点,或者之前,CMS 从 Typecho 切换到了 WordPress,那时的我用了 DigitalOcean 的 VPS 选择了 CentOS 8 和宝塔面板。虽说网站没什么体量,但是我还是选择了前端、数据库分离的模式。
然而,实际上网站还是很卡,如果数据库和前端装在同一个服务器上,在执行较重的任务时,由于内存不够数据库会崩掉。这就很糟糕。现在看来多少和宝塔面板的环境有关系。
可能网站太小了,也没有被人盯上。在这个欠缺维护的糟糕的服务器上,小站一运行就是好几年。服务器也没有升级和维护,平时只管写博文。MySQL 5.7 被我用到了2023年初。
网站的备份是我偶尔想起来了,备份一次。不过也用了 DigitalOcean 的自动备份,所以也不是很慌(逃
第二次搬家
随着我对 Linux 使用的掌握,学会了一些数据库管理的知识,逐渐意识到网站糟糕的情况,而且 CentOS 8 是一个滚动更新的模式,它的角色更像 fedora 了。服务器脆弱得离谱,秉持着能跑就不要动的原则,一个更新都没更过。
在2022年10月左右,我立了一个 flag ,把网站换到其它服务器上。由于我同时使用了 Lychee,它会引入与 WordPress 不同的 PHP 版本。所以我也决定做容器化。
还有一个原因,每个月30刀的服务器费用实在是用不起了。
搬家之前
本次搬家前,我做了一些准备,找了不少资料,把常用的功能写成脚本,在自己的 gitea 上创建了项目,把脚本和各种配置文件放了进去,准备容器化整个站点。
说来惭愧,这个项目陆陆续续花费了我4个月的时间(实际上只有两周在快速迭代),可能是因为空闲时间太少,这个项目进度缓慢。并不什么大项目,加上文档、配置文件,所有的内容一共就三千行。
搬家
好在,在2023年的2月中旬,整个项目完成了测试。接下来就是动手搬家,从老旧的 mysql 数据库搬到新数据库上花费了一段时间,由于 Lychee 的变化较大,我并没有保留旧的 Lychee 数据。(最后发现不如直接用 wordpress 的插件搬家快)
这次的服务器,我选择了一个较大号的,3C4G,有自动备份,应该还不错。
WPLY
我将这个项目起名为 WPLY 就是因为我要同时用 workdpress 和 lychee。最后,我把这个项目搬到了 GitHub 上。我也写了中、英文的文档可供参考。
至此,如果以后哪天我在想搬家,或者做负载均衡,那都是无比地简单。由于容器化,不必再担心环境问题。
结语
最后完成了这个项目,同样网络情况下博客加载速度基本翻倍了,感觉还是慢是因为 CloudFlare 这个减速 CDN 的效果。不过再怎么样也比以前快多了。
升级也变得简单,只要有更新就可以快乐地 update,定期执行 docker pull,php 的各种危险漏洞也不再是问题了。
不过,现在的脚本不能实现热备份,或者不停机备份。不过解决方法也有,就是麻烦一点点,启动两组相同的容器,甚至模仿安卓 A/B 分区的跟新策略。也可以做负载均衡,利用复杂均衡的特性来保证服务器的可用。
就目前看,服务器备份时需要几分钟的时间,问题也不大,而且我有 VPS 提供商的备份,只需要数月执行一次备份即可。