我的个人服务器建设历程:从折腾到稳定
我的个人服务器建设历程:从折腾到稳定
目录
最初的接触
最开始是在家里面部署各种 NAS 相关服务时,逐渐接触到了服务器。不过这次主要想聊的是服务器建设方面的经历,所以暂时不展开讲家庭网络规划。
最初接触服务器的时候,整体规划基本都是跟着网上各种教程一步一步学习。当时国内关于 Linux 服务器部署的教程,大多数都是围绕宝塔面板展开的。

不得不说,宝塔面板确实在很大程度上降低了 Linux 服务器的使用门槛。对于刚接触服务器的人来说,没有图形化界面的 Linux 系统确实存在一定学习成本,而面板可以让很多操作变得更加直观。
不过后面随着使用时间增加,也逐渐了解到宝塔面板属于商业闭源软件,并且越来越多功能开始商业化收费(ps没记错的话),而且在我使用期间,也了解到宝塔曾经历过一些社区争议事件,直播时候发了XX事故啥的,感兴趣的可以自行搜索了解。所以后来我逐渐放弃继续使用,转而选择开源的 1Panel。

另外一个变化就是服务器操作系统。从最开始使用 CentOS,到后来因为 CentOS 逐渐停止维护,只能重新选择新的系统。目前服务器主要使用 Debian 12 作为基础环境。
这也让我意识到,服务器建设和房子一样,基础非常重要。如果根基没有打牢,后面搭建再多服务,也容易因为底层环境变化而推倒重来。
服务器基础环境
现在我的服务器主要以 Debian 12 + 1Panel 作为基础环境。这里也提醒一下,服务器环境并不是越新越好。新版本系统在发布初期,往往会存在一些兼容性问题。例如 Debian 新版本刚推出时,部分软件和教程可能还没有完全适配(PS:别问我是怎么知道的
虽然现在有 AI 可以辅助解决问题,但遇到一些系统兼容、软件冲突的问题时,依然需要花费不少时间排查。
1Panel 也同样如此,并不建议每次发布新版本就第一时间更新。除非更新日志中明确修复了重要漏洞或者关键问题,否则可以等待一段时间,让更多用户验证稳定性之后再升级。 下面简单说一下 Debian 和 1Panel 给我的个人使用感受。
Debian
选择 Debian 主要有几个原因:
第一,开源,并且生态成熟。很多 Linux 教程都会基于 Debian 或 Debian 系系统进行编写,不容易遇到冷门系统没有教程的问题。
当然,现在有 AI 辅助以后,这方面的问题已经不像以前那么严重。
第二,生命周期长,稳定性较好。
之前使用 CentOS 时,最大的感受就是系统生命周期变化会影响后续维护。以前学习收藏的一些教程,以及已经部署好的服务,可能因为系统停止维护而逐渐失去参考价值。
所以现在更加倾向于选择稳定、生命周期长的系统,而不是追求最新。
1Panel
1Panel 是一个开源服务器管理面板。1Panel 面板官方提供的在线体验 Demo
相比以前使用宝塔面板,1Panel 给我的感觉更加简洁,同时社区版功能已经比较完善。其中比较实用的是面板自带的一些备份和管理功能,可以减少很多重复操作,而且不像宝塔面板需要强制绑定用户手机号码登录等等,同时宝塔面板官方自带的 WAF(如 Nginx 防火墙或堡塔云WAF)是之前好像是免费但是我现在看是要收费的,1panel社区版都可以免费使用(部分),所以这点我个人感觉足以放弃用宝塔面板了(ps主要还是人穷)。 还有就是我上面提到的直播事件,也可能是这次事件后宝塔更加封闭了?

当然,开源并不代表绝对安全,但相比完全闭源的软件,代码更加透明,也有更多用户参与维护和检查。
服务部署架构
目前服务器上的各种服务,主要都迁移到了 Docker 容器中。

以前部署服务时,经常按照不同教程安装软件,最后导致文件散落在系统各个目录中。这样虽然能够运行,但是后期维护和备份会非常麻烦。
现在的方式是:
需要部署新服务时,优先寻找是否存在对应的 Docker 镜像,然后通过 Docker Compose 进行管理。
这样做有几个优点:
第一,备份更加方便。
第二,不同服务之间相互隔离,减少互相影响。
第三,后续迁移服务器更加简单。
另外,目前网站服务也不再依赖单台服务器,而是准备了备用服务器。当主服务器出现问题时,可以快速切换到备用环境继续运行。相比以前一台服务器全部承担所有服务,现在这种方式更加稳定。

域名选择与长期规划
以前使用域名时,主要考虑成本,经常购买一些首年价格非常便宜,但是续费价格较高的域名。这样虽然第一年节省了一些费用,但是长期来看会产生很多问题。
首先,每年更换域名会带来大量额外工作。
例如:
- 网站解析需要重新配置;
- 网站目录可能需要修改;
- 部分服务中的域名配置需要重新调整。


甚至还有2022年、2021年、2020年更早注册的域名,不过我都忘记在哪个平台注册的了。以前可能还有时间和精力每年折腾一次,但随着时间增加,越来越觉得这种方式不适合长期维护。
另外一个问题是域名名称选择。之前放弃的域名,并不会马上释放出来,后续如果想重新注册,价格可能依然很高,最后想取什么名字都要绞尽脑汁。
所以后来选择固定一个长期使用的域名,不再频繁更换。对于个人博客或者长期项目来说,一个稳定的网址本身也是一种积累。
数据备份方案
服务器备份一直是我认为最重要的一部分。
目前我的备份方案大概有四个存储位置:
- 主服务器;
- 备用服务器;
- 123 云盘;
- 家里的 NAS。

目前主力服务器是一台 2C2G 小鸡;备用服务器是一台1C1.5G大盘鸡;另外还有一台国内中转服务器,用于优化访问速度。
备份主要分为两部分。
第一部分是 1Panel 的配置备份。1Panel 提供了备份和快照相关功能,可以方便保存面板配置、应用配置等内容。

这一部分主要采用手动备份方式。
例如:
- 系统设置完成后备份一次;
- 新增重要容器后备份一次;
- 修改重要配置后备份一次。
然后同步保存到多个存储位置。
第二部分是 Docker 数据。目前所有 Docker 持久化数据统一放在 /home 目录下面,然后通过 Syncthing 进行同步。
这样做的好处是,未来即使更换服务器,只需要恢复 Docker 配置文件和 .env 文件,再同步回 /home 下的数据,就可以快速恢复服务。另外,如果使用 1Panel 的相关备份功能,也可以进一步保存部分配置内容,减少恢复时的工作量,所以不用操心。

以前踩过的坑
以前没有使用服务器供应商提供的快照功能,主要原因还是贵(ps还是人穷)。当时都是手动下载各个项目目录进行备份。但是在真正恢复的时候,经常会遇到各种问题。例如以前使用 Chevereto 图床时,迁移完成后经常出现网页无法打开、PHP 报错等问题。另外 Chevereto 后来也从开源项目变成闭源收费软件,不更新会有安全问题,付费更新又比较贵。本来搭建个人图床并不是为了盈利,最后还需要承担较高的软件费用,所以最终放弃,类似的问题其实还有很多。
这也让我意识到:
能运行不代表容易维护,能够快速恢复才是真正稳定。
实际运行效果
实际使用下来,目前这种方式效果还是比较满意的。因为购买的服务器都是价格比较低的小鸡,很多并不会提供完善的备份系统。
以前总想着:“服务器没了,大不了重新安装。”但真正遇到问题后才发现,重新搭建环境非常耗费时间。
现在迁移方式简单很多:只需要恢复 Docker 配置文件,再同步数据,就可以快速恢复服务。
更新容器也更加方便:直接拉取新的镜像即可,不需要像以前一样担心各种依赖冲突。
另外,容器之间相互独立,即使某一个服务出现问题,也不会轻易影响整个服务器环境。

当然,服务器依然可能出现各种故障。
比如服务器供应商出现问题,甚至可能会遭到“毁灭打鸡”。所以两台及以上的小鸡还是比较有必要的。出现问题时,可以通过备用服务器及时迁移备份数据,并通过重新解析域名快速恢复服务。
而且就算人品太差,两个服务器都炸了,同时出现问题,还有 123 云盘和家里的 NAS 保存数据。
这就是目前的异地多份备份方案。
总结
以前我乐于折腾:刷手机系统、尝试各种开发版本、研究各种新功能。比如:原来在手机上,还喜欢用一些什么开发版本啊,搞什么刷机换多个版本自定义之类的,现在也就都不想弄了,更加追求稳定。手机直接使用官方正式版本。以前也搭建过博客,写过不少文章,但是由于备份没有做好,再加上一些 WordPress 更新、插件、安全漏洞等问题,最终导致数据无法恢复,也没有精力重新建设。
所以现在重新搭建的一切,也更加重视长期维护。目标都是:
稳定优先。
当然,也不是说一定要购买昂贵服务器,使用供应商提供的高级备份服务。毕竟:
花钱省事,省钱费事。
对于我这种个人用户来说,目前这种多服务器、多地点备份的方式,是在成本和维护难度之间找到的一个平衡点。
回来说现在的运行效果,我个人觉得总体是非常好的,碰到故障问题可以马上切换恢复到正常运行状态。还有一点要提的就是,现在搭建跟以前不一样了,当前我服务器的大部分搭建和排错过程,都会借助 AI 辅助完成。可以使用AI进行问题查找与解决,不说有多么快捷吧,在有些问题的回答上,可能会绕弯搞这检查那检查啥的(ps那是因为你穷没有给AI充钱导致他记忆断片好吧),但怎么说,比起以前那个互联网环境还是好了不少的,不用自己一个个去查找问题,要是碰到一些问题网络上搜都搜索不出来那更没辙了,那时候也不会有像AI一样的大神,会一条条回应那个在他看来,小白到不能再小白的问题了,但现在通过 AI 辅助,现在很多问题都可以更快定位和解决,这也是时代的差距啊。

这几年搭建个人服务器最大的心得就是:
一定要做好服务器、文件等等备份工作。而且不能只保存一个地方,需要进行异地多份备份。
以前都是按照网上教程部署服务,结果文件位置到处都是,后期备份非常麻烦。虽然说可以买更好更贵的服务器,利用供应商自带快照备份功能等等,这样的话就可以实时的进行恢复也不需要考虑那么多(ps需要考虑钱包hh),但避免不了相关的一些应用升级和碰到各种问题的故障也还是会存在的,还是会比较难以排查和解决。
现在通过 Docker 统一管理,再配合多地点同步,让服务器维护简单了很多。未来如果有新的经验,也会继续补充更新。
本文涉及的一些具体技术内容,后续也会单独写文章介绍,并添加相关链接,方便跳转查看。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!

