本文最后更新于 2025-07-25,文章内容可能已经过时。

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

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

一、服务器

服务器主要是分为国内服务器和国外与香港服务器,各有优劣,由于我是第一次建站所以还是选择了国内的服务器。

1. 国内服务器

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

2.国外服务器

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

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

二、服务器系统

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 相对于Centos来说,拥有以下几个优点:

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,没有遇到在使用宝塔时遇到的问题,各方面操作更加直观和简单。

四、总结

随着各种面板和系统操作越来越简单,使得个人建站的成本和技术要求也越来越低了,但是这些功能都是比较的基础,想要运营好一个小网站还需要继续学习相关的只是。当然技术的发展意义就是要使所有的事情变得越来越简单,让人们可以专注于自己喜欢的事情。