历经九九八十一难,终于是将自己的博客搭建好了。

本来是打算自己搭建整个博客系统的,但是写了几天界面后发现自己的审美确实不太够,ui和样式都写的太丑了。然后发现了一个大佬的博客,突然就打开了一个新的世界,原来ui还能写的这么漂亮。感谢大佬的开源https://blog.zhheo.com/about/。前人栽树,后人乘凉。当然当中遇到的坑,这个还是最小的。记录一下在搭建个人博客时遇到坑。

一、服务器

服务器主要是分为国内服务器和国外服务器,国内和国外服务器各有各的不好的地方,由于我是第一次建站所以还是选择了国内的服务器。

1. 国内服务器

国内服务器最大的问题是什么都需要实名与备案。购买服务器需要实名,如果你想要购买域名和使用域名还需要进行域名的备案。按照各个省份的规则不同,备案的需要的资料和时间也不尽相同。所以在你购买完服务器并部署了自己的网站或博客之后,想要通过域名访问还需要20天左右的时间。如果备案不通过的话还需要一直改,并且你的网站用途需要如实备案,后期如果查出你的网站用途和功能和备案不相符的话可能会被封禁。但是国内服务器的优点是:1.访问延迟低。2.首次购买的价格低。3.支持国内主流支付手段。4.本地化好。

2.国外服务器

国外服务器是不需要进行备案和实名的,域名也不要备案,意味着你当天购买了域名,并部署了网站或博客,解析完域名后就可以使用域名访问了。

但是国外大厂的服务器一般来说比较昂贵,并且不一定支持国内通用的支付手段(比如alipay、wx、银联),需要你拥有外币信用卡。还可能面临着延迟很大、本地化不好(用户界面很难用,隐形收费等。)。

二、服务器系统

CentOS与Ubuntu

想必大家很多人刚开始接触Linux系统都是使用的CentOS,本站刚开始时便是想要使用CentOS作为服务器系统,但是25年的今日CentOS已经停止了维护。信息如下:

CentOS Linux 是一个免费提供的、社区支持的Linux发行版,由CentOS项目社区贡献者开发、分发和维护。2020年CentOS项目宣布将把全部投资转移到CentOS Stream,作为即将发布的 Red Hat Enterprise Linux版本的上游开发平台。因此,CentOS Linux更新和发布将在2021年至2024年期间停止,并在CentOS Linux 7于2024年6月30日达到生命周期结束(End of Life,EOL)时结束。

如果你还想坚持使用CentOS话,你可能面临以下的情况。

1. 操作系统内核与基础组件

  • 内核漏洞:CentOS 7 内核(3.10.0)和 CentOS 8 内核(4.18.0)停止更新后,新发现的漏洞(如 CVE-2024-1086,影响 Netfilter 模块的权限提升漏洞)将无法通过官方补丁修复,攻击者可利用此类漏洞实现本地提权或服务崩溃。

  • 驱动兼容性:新硬件(如新一代 CPU、GPU 或存储设备)的驱动程序可能不再适配旧内核,导致硬件无法识别或性能下降。例如,CentOS 7 无法支持最新的 PCIe 5.0 接口或某些 ARM 架构芯片。

  • SELinux 与防火墙:SELinux 策略和 Firewalld 规则虽可手动维护,但内核级安全机制(如内存隔离、网络过滤)的更新停滞将削弱系统防御能力。

2. 数据库管理系统

  • PostgreSQL/MySQL:官方 YUM 仓库停止更新,无法获取安全补丁(如 PostgreSQL 16 在 CentOS 7 上无法通过官方源安装,需手动编译或依赖第三方仓库)。长期运行的数据库面临 SQL 注入、缓冲区溢出等漏洞风险。

  • MongoDB/Redis:新版本可能不再支持旧版 CentOS(如 MongoDB 5 + 不兼容 CentOS 6),用户需降级版本或手动编译,增加运维复杂度。此外,Redis 等内存数据库的性能优化和安全增强特性无法通过系统更新获得。

  • 依赖问题:数据库依赖的系统库(如 OpenSSL、glibc)若未及时更新,可能导致连接中断或数据加密失效。

3. Web 服务与中间件

  • Nginx/Apache:新版本依赖的动态链接库(如 OpenSSL 1.1.x、zlib 1.2.11)可能无法通过系统包管理器安装,需手动编译源码并管理依赖。例如,Nginx 的 TLS 1.3 支持或 HTTP/3 协议适配可能受限。

  • Tomcat/Jetty:Java 应用服务器的安全更新(如修复 Log4j 漏洞)需依赖操作系统级库更新,若 CentOS 停更,可能导致补丁无法部署。

  • 容器与编排:Docker 和 Kubernetes 对内核功能(如 cgroup v2、overlay2 存储驱动)的支持可能受限,影响容器化应用的稳定性。例如,CentOS 7 内核的 cgroup 内存记账功能存在缺陷,可能导致 Kubernetes 节点内存泄漏。

4. 开发工具与编程语言

  • 编译器与运行时:GCC、Python、Ruby 等工具的新版本可能不再适配旧版 CentOS,开发者需手动升级或依赖第三方源(如 IUS 社区)。例如,Python 3.10 + 在 CentOS 7 上的官方支持已终止。

  • 包管理系统:YUM 仓库的维护停滞可能导致依赖解析失败,需切换至第三方源(如 EPEL 或 Nux Dextop)或改用容器化开发环境(如 Podman)。

  • 集成开发环境:IDE(如 IntelliJ IDEA、VS Code)的插件和调试工具可能因系统库版本过旧而无法正常运行。

5. 安全与运维工具

  • 漏洞扫描与修复:Tenable Nessus、OpenVAS 等工具依赖的系统组件(如 Nessus Agent)可能无法在停更的 CentOS 上更新,导致扫描结果不准确或修复失败。

  • 自动化运维:Ansible、Puppet 等工具的某些模块(如与 SELinux 或内核参数交互的模块)可能因系统状态固定而失效。

  • 日志与监控:ELK Stack(Elasticsearch、Logstash、Kibana)的新版本可能不再适配旧版 Java 或系统库,影响日志收集和分析。

所以CentOS已经无法再成为当前主流的服务器系统了,建议直接更换其他服务器系统(比如Ubuntu)。

Ubuntu 作为服务器操作系统,拥有以下几个优点:

1.稳定性与可靠性突出

  • 长期支持版本(LTS)保障
    Ubuntu 每两年发布一个长期支持版本(如 Ubuntu 22.04 LTS、24.04 LTS),提供长达 5 年的安全更新和维护,适合对稳定性要求高的服务器环境。相比部分发行版(如 CentOS 停止更新后需迁移),LTS 版本能减少因系统升级导致的服务中断风险。

  • 内核与组件的稳定性优化
    Ubuntu 服务器版的内核和关键组件经过严格测试,针对服务器场景(如高负载、长时间运行)进行优化,降低崩溃和故障概率,支持 7×24 小时不间断运行。

2.易用性与管理便捷性

  • 包管理系统高效统一
    使用apt包管理器,通过简单命令(如apt install/apt update)即可快速安装、更新软件,支持依赖自动解析,避免手动编译的复杂流程。同时,Ubuntu 官方软件源和 PPA(个人软件包归档)提供丰富的软件包,覆盖 Web 服务器、数据库、开发环境等各类需求。

  • 图形化与命令行兼顾
    虽然服务器通常通过命令行管理,但 Ubuntu 提供友好的图形化工具(如 Ubuntu Server 的 Web 管理界面或第三方工具),便于新手快速上手;同时,命令行界面遵循 Linux 通用规范,对资深管理员也十分高效。

  • 自动化部署与配置工具支持
    兼容 Ansible、Puppet、Chef 等自动化运维工具,可批量部署服务器环境,简化集群管理;也支持 Juju 等 Ubuntu 原生的 charms 工具,通过 “声明式配置” 快速搭建复杂服务(如 Kubernetes 集群、大数据平台)。

3.生态兼容性与软件支持广泛

主流服务与应用的原生支持
几乎所有主流服务器软件(如 Nginx、Apache、MySQL、PostgreSQL、MongoDB、Docker、Kubernetes 等)都在 Ubuntu 上有良好适配,官方文档和社区教程丰富,问题排查效率高。

开发与测试环境友好
许多开发框架(如 Python、Java、Node.js)的官方安装指南优先推荐 Ubuntu,且 Docker 镜像默认基于 Ubuntu 构建,便于开发、测试与生产环境的一致性部署。

云平台与容器技术深度集成
Ubuntu 是 AWS、Azure、Google Cloud 等主流云平台的默认镜像之一,云服务商提供专门的优化版本;同时,与容器技术(如 LXD、Docker)无缝集成,支持轻量级虚拟化和微服务架构。

4.安全性与合规性保障

定期安全更新与漏洞修复
Ubuntu 安全团队会及时响应 CVE 漏洞,通过apt推送补丁,LTS 版本即使过了标准支持期,仍可通过付费的 ESM(扩展安全维护)服务获得额外安全更新,适合对安全性要求高的企业场景(如金融、医疗)。

内置安全机制与合规工具
支持 AppArmor(应用级访问控制)、SELinux(增强型安全模型),可限制进程权限;集成防火墙工具(如 UFW)和审计功能,满足 PCI-DSS、HIPAA 等合规要求。

5.硬件与架构兼容性强

多平台与硬件适配
支持 x86_64、ARM64(如 AWS Graviton、树莓派)、Power 等架构,适配从微型服务器到大型数据中心的硬件环境,尤其在 ARM 云服务器和边缘计算场景中表现突出。

资源占用与性能优化
系统内核轻量化设计,内存和 CPU 占用率低,适合在资源有限的服务器上运行;同时,支持热插拔、硬件 RAID 等企业级硬件特性,提升服务器可用性。

三、服务器管理面板

可能很多人会觉得使用服务器管理面板加大了服务器被攻破的概率,并且容易在部署环境的时候出现冲突,但是其实个人服务器其实没有什么敏感信息,并且主要是免费的太香了(我太懒了)。很多环境可以一键管理,轻松的搭建起一个网站,它还提供了服务器各项资源的可视化管理。

目前主流的服务器管理面板有宝塔与1panel。

宝塔:


虽然在各方的评测中宝塔性能占用最少,并且操作更简单,有很多博主推荐。但是在我个人使用起来有几个问题:

1.需要注册宝塔账户才能使用。

2.在安装环境时它会验证服务器的资源是否足够(主要是内存),如果低于最低使用配置就会停止安装环境,并且没有提示。

3.有内存泄漏现象,安装后会随着时间吃服务器内存直到吃满。以至于2c2g的服务器都无法启动一个web服务。

1Panel:

1Panel是一个比较年轻的服务器管理面板,但是界面美观,开源,有Docker原生支持。本站也是使用1Panel,没有遇到在使用宝塔时遇到的问题。

四、总结

以现在的AI技术以及各方大佬和机构公司的下场,使得个人建站的成本和技术要求已经非常低了,甚至可以使得一个完全不懂代码的人轻松搭建一个网站。技术的发展意义就是要使所有的事情变得越来越简单,让人们可以专注于自己喜欢的事情,感谢大家的开源和对于社区的支持。