个人服务器运营的一些感想和经验(1)——个人博客

个人服务器运营的一些感想和经验(1)——个人博客

 次点击
6 分钟阅读

从去年10月起我就动了“部署一个自己的本地服务器”的念头。为此我专门购置了一批物件,最终东拼西凑成了我的本地服务器,装上了Ubuntu 22.04 Server系统。

在这之后,首先要处理的是一个很重要的问题——我作为一个Linux小白,该如何比较方便地管理我的Linux Server?

最简单的结论就是找一个Linux服务器管理面板,装上

1 从1panel开始

你获得了你的服务器硬件,成功安装了Linux系统,但这并非结束。它和你的Windows/Mac OS电脑一样,需要安装软件才能运行。它还不具备通灵,需要有程序才能运行。作为一个小白,我又不方便直截了当地看到服务器的运行状态,咋办?一个用户友好的Linux面板就派上大用了。

这个是1panel的官网,点击其界面顶栏的“使用手册”就能看它的官方文档了。

因为后面很多东西都会涉及到Docker,而目前国内在没有预先配置的情况下,Docker和网络相关的不少配置都很难解决,为了防止后期出现网络相关问题,这里安装1panel面板时就比较推荐启用它安装脚本中有关Docker加速的功能(当然如果你是在云端比如阿里云之类的服务器上部署的话大概率也不会需要这个步骤,除非你不带面板)。

安装完面板后,别急着进行后面的步骤,命令行内应该有很重要的信息(像什么密码之类,具体到现在已经过去太久,我自己已经忘却了,主要是现在没有使用过)应该要记录/保留下来(我应该还是保存了的)。

2 部署一个博客

博客是一本很有意思的日记本。

虽然说很多其它的东西也能起到相似的功能,比如平板电脑上的笔记软件——它们也能作分类,上tag(或许),也能贴图片,有的甚至可以上音频和视频,老牛b了。

但为什么我还要专门去搞这么一个服务器拿来运行一个博客呢?

当然,一个方面,和我没有平板也有关系。有人可能会说,你拿购置这么一台服务器的价钱再加点来买一个便宜的2k价位的平板电脑很明显值得很多。这诚然不假,但在做出“购买服务器硬件”这个决定时,我也有自己的思考。

平板电脑对于我来说不仅仅是做记录的工具,它还是我音游体验不可缺少的一部分。

作为一个音游玩家,我无法接受明明在条件允许的情况下以牺牲自己的实操体验为代价而购买一台廉价的平板。截至目前,我还没有足够的本金购入我理想中的平板(新款iPad Pro)。当然,这部分都是后话,此处暂且按下不表。

话题回到博客本身上来。

博客是一本很有意思的日记本——当然未必真的是“日”记,但它能给我带来别致的生活体验。博客最特别的性质就是“在网”——它自诞生起就依托于网络,它相对于别的日常记录方式,最大的意义就是“给别人看”,给四海八荒的、无论远近的人们看。

虽然我是一个小白,但我也有过一小段时间的相关领域接触。主要是在学校的创新实践课上,我们的导师引导我们接触Web和前端,一切的起点汇聚到了Markdown、博客和键盘操作上。

通过那段时间的接触,我的内心告诉自己,我并不满足于一个纯前端、静态的博客。

这可太重要了!一个拥有完整的前后端逻辑、可以动态生成界面、实时管理内容的博客看着都很爽啊好不好!

结合 Bakano1 的推荐,我把目光聚焦在了Halo上面。

如你所见,这个博客界面就是依托Halo搭建的。

在搭建的过程中我也踩了一些坑,最后得到了一个系统化(?)的总结。

2.1 为什么选择用Docker?

如果你看了Halo官方文档的话,你不难发现它有很多部署的方式。而在这其中,我最推荐的就是Docker。

Docker的理念是将程序容器化,使用一个删减了绝大多数内容、仅保留核心功能的Linux系统作为一个“容器”或“壳体”,在这个容器内布置好软件的运行环境,最后把软件放进去,对接好启动和操作的api,再打包起来,一个Docker容器镜像就完成了。

这个镜像类似于我们安装电脑操作系统时所使用的系统镜像(ISO)文件。我们要使用这个软件系统时,就使用这个镜像,把它“解压”成一个容器实体,让这个容器实体运行起来就成。

Docker的容器化还对应了一个非常重要的特性——文件挂载。

一个Docker容器内部只有精简的系统环境、软件所需环境和软件本体,那它运行时产生的文件(尤其是重要数据)肯定得找个地方存起来。

有人就要问了:就给它存到容器里头不行吗?

可以,但是会带来很多麻烦。

容器镜像是很好迁移的,你只要知道了下载路径,就可以很容易地获取一个一模一样的镜像。但容器运行时产生的运行数据(比如用户数据等)就很重要,它是独特的,应该被妥善保存而不是随意丢弃。尤其是当你需要进行一些特定的迁移工作时,这个注意点就尤为明显。若你把数据留在容器内部,最大的问题就是如果你(好吧其实是我)是个小白,你(我)不知道怎么把运行数据导出来。

Docker的文件挂载系统就能解决这个问题。在这个系统中,你可以设定镜像内特定数据存储的目录会被映射到宿主机的哪个目录里头,这样你就能在不进入容器的情况下获取到这些重要的运行数据。

这就像当年新冠疫情仍在肆虐之时的机密文件中转站——假设有一个站点被设为了临时高考考场,场内环境就是Docker容器,考生是Docker容器中的核心程序,场外的试卷押送人员相当于我们自己(实机用户)。在场内和场外之间,就需要一个地方专门负责文件的暂存和中转。你设定的这个宿主机目录,就是其中的“中转站”。当然,它不会像对待那时的高考试卷那样将其“反复检查”“消毒”,但它实实在在地在作为一个文件中转站运行。

(未完待续)

© 本文著作权归作者所有,未经许可不得转载使用。