明年换服务器的一些想法

开始部署时只想着简单不想引入太多的复杂性,所以直接部署在windows上了。但是现在用户并不多,所以选择足够便宜的云服务器就很有必要,每年服务器到期就有必要平衡一下费用情况,进行迁移。以目前的部署情况来看,迁移还是有点麻烦的,新换服务器应该充分考虑迁移的方便。

初步设想仍然使用windows主机,但是使用podman部署产品。虽然podman在windows上运行于wsl内(即windows运行linux,linux运行podman容器,套了3层娃),在性能上应该会有不小的损失。考虑到用户并不多,这点性能损失我认为是可以接受的(没作具体的评测,以我目前的用户数来说,我觉得评测性能损失是多此一举)。

整个系统分为:nginx容器(配置certbot更新let’s encrypt的证书)、postgre容器、服务入口容器(即main,用来根据url进入不同产品)、产品容器(每个产品分别一个容器,相互隔离)。每个容器配置一个卷用来作持久化存储。在windows层面将对本机80/443端口的访问转发给wsl的linux系统,再由linux系统将此映射到nginx容器。

如此部署后,换服务器时,只要 wsl --export将wsl子系统导出,在新的服务器中再wsl --import导入,即可完成部署,无需进行太多复杂的配置。当然这只是一个初步设想,应该还会有未考虑到的地方,只有提前走一遍完整的流程才能知道未知的缺陷。但这个做法应该是可行的。

2024-11-19新想法

其实完全没必要用podman,wsl本身就算是一个容器,将所有的服务都部署在wsl中就可以,需要更换服务器时,直接导出wsl即可。自己本机的开发环境也可以这样搞,这样重装系统就会方便很多,直接导出wsl镜像是多么方便的事。