前言
之前从WordPress迁移了一个博客到Halo,本来以为很简单,结果前前后后折腾了快两周,踩的坑比我预想的多得多。今天就从服务器选型开始,分享一下Halo建站前的一些准备工作,给准备入坑 Halo 的朋友避避雷。
服务器选型,1 核 1G 真不够用
为了图便宜,我买了的一台 1 核 1G 的 VPS,装完 Halo 和 MySQL 之后,明显感到卡慢了,而且我迁移博客还要再装别的应用,那运行速度就更不敢想了,果断Pass掉。
然后换成 2 核 2G 的洛杉矶 VPS,才算能正常用。如果你只是自己写写博客,没什么流量,2 核 2G 是底线。如果打算放图片、跑插件、偶尔有几百人同时访问,4 核 4G 更稳。
线路方面,由于我用的是海外服务器,我选用的是 CN2 GIA,国内访问延迟大概在 150ms 左右。AS9929 和 CMIN2 也试过,延迟差不多,晚高峰 CN2 GIA 更稳一点。如果你主要面向国内读者,线路比配置更重要。
磁盘一定要选 NVMe SSD。普通 SATA SSD,后台加载很慢,换成 NVMe 之后明显快了一截,因为博客的图片和数据库都很吃磁盘 IO,这块就别省了。
操作系统选择,Ubuntu 和 Debian 二选一
Halo 官方推荐 Ubuntu 20.04 及以上。我一开始习惯装的是 CentOS 7,装到一半发现 Halo 2.x 对 CentOS 7 的支持不太好,有些依赖装不上,折腾了半天还是重装了。
现在用的是 Ubuntu 22.04 LTS,稳定,社区资料多,遇到问题搜一下基本都有答案。Debian 12 也可以,更轻量,资源占用比 Ubuntu 低一点,如果你 VPS 配置不高,Debian 也是个不错的选择。
CentOS 现在就不太推荐了。CentOS 7 已经停止维护,CentOS Stream 又跟原来的 CentOS 不是一回事,不太容易使用。
系统装好之后,第一件事是更新软件源,第二件事是创建普通用户,不要一直用 root 来操作。
运维面板选择,宝塔还是 1Panel
运维面板这块我比较纠结。
先说 宝塔面板。功能全,资料多,教程全面,中文界面,新手友好,装完就能用。但宝塔这两年争议不少,强制登录、广告多、安全事件也出过几次。
1Panel则是界面干净,没有广告,开源,支持 Docker 管理。对 Halo 这种推荐 Docker 部署的应用来说,1Panel 的 Docker 管理功能很顺手。缺点是文档没宝塔全,遇到问题得靠自己搜。
最后还是选择了1Panel,宝塔用久了,换个新的面板体验一下。
如果你完全不想装面板,纯命令行也不是不行。但 Halo 的日常维护,比如备份、看日志、重启服务,有面板会方便很多。练手建议先用宝塔,功能全,资料多,教程全面,习惯之后再考虑要不要换别的面板。
防火墙规则,别把自己关在外面
防火墙这块我踩了个经典的坑,把自己 SSH 关在外面了。(´-ω-`)
装完系统之后,我先开了 ufw,规则只加了 80 和 443,忘了加 22。保存之后 SSH 直接断线。
正确的做法是先加 SSH 端口,再开其他端口。常用端口就这几个:
22,SSH 登录用,改成非标准端口更安全。
80,HTTP,Halo 的默认访问端口。
443,HTTPS,配了 SSL 证书之后用。
8090,Halo 默认后台端口,如果不用反向代理可以开,用了 Nginx 之后建议关掉。
云服务商的 安全组 和系统的 iptables、ufw 是两层防护,两层都要配。我第一台 VPS 就是只配了系统防火墙,忘了安全组,结果 80 端口一直访问不了,排查了半天才发现是安全组没放行。
另外,8090 端口不要长期暴露在公网。Halo 后台如果被扫到,暴力破解是迟早的事。用 Nginx 反向代理之后,后台端口只对内网开放。
总结
Halo 建站前的准备工作,核心就这几项:
服务器选型:2 核 2G 起步,4 核 4G 更稳,磁盘选 NVMe SSD,海外服务器线路优先 CN2 GIA。
操作系统选择:Ubuntu 22.04 LTS 或 Debian 12,别用 CentOS 7。
运维面板选择:1Panel 干净,宝塔功能全适合练手。
防火墙规则:先加 22 端口,再加 80、443,云服务商安全组和系统防火墙都要配。
这些准备工作做完,Halo 的安装才算有个靠谱的基础。
下一篇 蜜汁博客 将会分享 Halo 的安装和初始化操作,包括 网站应用选择、数据库初始化、SSL 证书申请、Halo 版本选择 等等这些内容,继续完善Halo建站的内容。(・ω・)🔧
非常感谢你耐心阅读到结尾!
