## 起因
手头有一台吃灰的轻量服务器,配置是 2核CPU / 2GB内存 / 40GB硬盘 / 30Mbps带宽,香港机房。原本只是买来练手的,但放着也是浪费,索性把它盘起来,记录一下全过程,也算督促自己别半途而废。
这篇文章就是它的第一件产出。
## 配置清单
先交代环境,后面所有操作都是在这个基础上做的:
- 系统:Ubuntu 24.04 LTS 64bit
- 配置:2 核 2G 内存 40G SSD 1TB月流量
- 位置:中国香港
- 域名:一个 .eu.org 免费域名之一,以后可以再换
- 面板:1Panel
- 博客程序:Halo
总成本:**一台低配小鸡 + 一个免费/便宜的域名**,没了。
## 第一步:系统一条龙优化
跑了个科技Lion 的一条龙脚本,把系统更新、防火墙等基础事项都跑了一遍省事:
重要提醒:2G 内存的机器**一定要加 Swap**,不然装两个 Docker 容器就开始飘。我加了 2G,目前没爆过。
## 第二步:装 1Panel,用面板干活
命令行拉取官方安装脚本一把梭:
```bash
curl -sSL https://resource.fit2cloud.com/1panel/package/v2/latest/install.sh -o install.sh && bash install.sh
```
装完会自动生成:端口、安全入口、用户名、密码。**这四样一定记到密码管理器里**,别偷懒。
装好先做三件事:
1. 改端口默认值
2. 防火墙只放行 SSH + 面板 + 80/443
3. 建一个每日备份任务
## 第三步:装 OpenResty,做反向代理
应用商店里选 OpenResty,参数默认,1 分钟装完。
为什么是它?因为 1Panel 的「建站」功能底层就是靠它干活,装 Web 服务绕不开。
## 第四步:装 Halo
应用商店搜索 Halo → 安装:
- 访问端口默认 8090
- 数据库选 MySQL 8.x
- 外部访问地址填 https://blog.你的域名
容器拉起来后,接着到「网站」里建个反向代理:
- 域名:blog.你的域名
- 代理目标:http://127.0.0.1:8090
别忘了去域名服务商后台解析 A 记录到服务器 IP。
## 第五步:上 HTTPS
网站设置里申 Let's Encrypt 免费证书,HTTP 验证一把过,开启"强制 HTTPS"。
完毕。此刻访问 https://blog.你的域名,就是 Halo 的初始化页。
## 踩坑记录(这部分才是精华)
1. 没有先改 SSH 端口 + 强密码,第二天就看到一堆可疑登录记录。吓死。
2. 忘了加 Swap,某次发布文章时 Halo 重启容器 OOM 了。
3. Halo 外部访问地址填错,填成了 IP,结果 Gravatar 头像、后台跳转全出错。
4. 申请证书时把域名 A 记录解析还没生效,失败三次才想到去 ping 一下。
以上都是新手典型错误,希望你看了能避开。
## 这台小鸡接下来打算干嘛
正经计划如下:
1. 稳定更新博客,先把"折腾记录"这个标签写起来
2. 挂 Google AdSense,先试试水
3. 接点技术含量的小活(帮人装环境、搭站)
4. 观察资源占用,扛不住再加配置
后续会继续发记录。感兴趣可以收藏下,看我能"活"多久。
## 结语
整条流程下来,真正动手干的时间不超过两小时。**很多复杂的事情,拆开看不过如此**。
如果你也有一台吃灰的小鸡,不如就拿它干点啥。