2026 年!在仅 512MB 内存树莓派 Zero 上无磁盘搭建网站,超低成本方案揭秘!

在完全运行于内存的树莓派 Zero 上搭建网站

2026 年 5 月 8 日,微型网站 [zero.btxx.org](https://zero.btxx.org) 通过运行 Alpine Linux 的树莓派 Zero v1.3 向公网提供服务。最棒的是,它无需磁盘,完全在内存中运行!树莓派 Zero 在冷藏室里默默运行着(旁边还有两个额外的树莓派“助威”),为 [zero.btxx.org](https://zero.btxx.org) 提供服务。考虑到树莓派 Zero 总共只有 512MB 内存,其中约 40MB 用于运行 Alpine Linux,这就更令人印象深刻了。不过如今内存既充足又便宜。不管怎样,这真是个好时代!如果你也想在树莓派 Zero 上搭建自己的网站,那就接着看下去吧!

所需硬件

在开始之前,需要列出所需的所有硬件,包括本地硬件和外部硬件。

(本地)硬件

本地硬件包括树莓派 Zero v1.3、512MB 及以上的 microSD 卡(安装和启动到内存仍需要)、Waveshare 以太网 HAT(可选,也可以使用 OTG 适配器)、以太网线、微型 USB 电源线/电源适配器、酷炫的外壳(可选)。

为什么选择 512MB 的 microSD 卡?

这会让我们在文章结尾进行镜像备份时更加轻松。由于我们的最大内存空间(存储)限制为 512MB,避免备份过多不必要的数据是合理的。在初始安装 Alpine 时还需要一些临时使用的额外硬件,如显示器、HDMI 转迷你 HDMI 适配器、键盘。

(外部)硬件

由于打算避免在树莓派 Zero 上直接处理繁重的 TLS 终止,将通过一个单独的小型 VPS 来引导安全流量。目前使用的是 [TierHive](https://tierhive.com/r/AD3AFC1F50FF)(推荐链接),到目前为止体验很棒。他们仍处于 alpha 阶段,但对于这个个人实验来说没问题。选择 TierHive 是因为其价格低廉,并且有预配置的 HAProxy 选项。

VPS 配置

VPS 配置为 Alpine Linux、128MB 内存、1GB 存储(NVMe)、1 个 vCPU、约 4 美元/年。不过现在不用太担心这些,稍后会详细介绍!如果你愿意,也可以使用其他提供商或像 Cloudflare 这样的免费服务。

准备 microSD 卡

以下操作是在 macOS 上进行的。使用不同的操作系统需要不同的步骤。请注意,我们将直接把 `tar` 内容提取到 microSD 卡上,所以要确保下载以 `tar.gz` 结尾的 Alpine 镜像。插入 SD 卡,使用 `diskutil list` 查找磁盘。在示例中,SD 卡位于 `/dev/disk4`。将卡擦除并重新分区为 FAT32,再将 Alpine 压缩包提取到卡上,清理 macOS 产生的垃圾文件,然后弹出卡。现在将 microSD 卡插入树莓派 Zero。确保树莓派连接到显示器和键盘,然后开机。

无磁盘模式下的 Alpine Linux

树莓派启动进入 Alpine Live 环境后,使用 `root` 登录(无需密码)。注意 SD 卡应该位于 `/dev/mmcblk0`。通常会运行 `setup-alpine` 并完成安装程序,但需要先配置 `lbu`。这样就可以将配置和网站文件保存到 SD 卡上,以便在重启时保留持久更改。要特别注意 `lbu commit -d`。每次在系统上安装/删除软件包或更改文件时,都需要运行此命令。否则,这些更改将在未来的重启或停电时丢失。完成上述操作后,现在可以继续运行 `setup-alpine` 进行安装。安装过程会引导完成键盘、主机名、网络、DNS、时区、镜像源、SSH 服务器、root 密码、磁盘等设置。当询问存储配置/APK 缓存时,应该已经默认使用之前配置的 `/media/mmcblk0p1/cache`,保持不变即可。安装完成后,可以重启系统。系统启动并登录后,可以通过运行 `df -h /` 命令检查是否一切都在内存中运行。如果 `root` (/) 挂载为 `tmpfs` 或 `ramfs`,则表示它正在内存中运行。

软件

`darkhttpd`

由于只需要提供基本的 HTTP 服务(记得 VPS 会处理 TLS),对于有限的资源来说,`darkhttpd` 是最佳的 Web 服务器选项。安装并设置一个启动运行时,以便在重启时保持运行。将网站文件放在 `/var/www` 下。确保让 `lbu` 包含这个目录,否则重启时这些文件将丢失!还要注意 `maxconn` 参数,可以根据需要进行调整。

`nginx`

如果你需要对 Web 服务器有更多的灵活性或控制权,也可以使用 `nginx`。创建一个特定站点的配置文件,与 `darkhttpd` 一样,要在重启/电源循环时保持文件持久化。

`rsync`

为了将本地机器上的更改同步到树莓派,需要 `rsync`。如果你更喜欢使用 `scp` 或通过 FTP 客户端直接传输文件,可以跳过这一步。这只是个人偏好。

`lbu`

现在已经在树莓派上安装了所需的所有软件,将希望在 microSD 卡上保持持久化的配置和网站文件都包含进来。最终的软件栈概览包括 `dropbear`(安装过程中设置)、`darkhttpd`、`lbu`、`rsync`。

开放端口

由于计划使用外部 VPS 处理 TLS 终止,只需要在本地网络上开放一个端口(在这个例子中是 `80`,你可以根据需要选择)。这里不会详细介绍,因为家庭网络差异很大。只需知道需要开放端口 `80`,并确保目标是树莓派 Zero 设备的 IP(也应该设置一个静态 IP 以避免麻烦)。注意以下说明中的目标端口。重要提示:如果你的 ISP 为你的家庭网络分配动态 IP,你需要配置某种形式的 DDNS。推荐 [DuckDNS](https://duckdns.org)。

TierHive VPS

对于需求,只需要 VPS 的低端配置,即 Alpine Linux、128MB 内存、1GB 存储。按照标准的 Alpine 配置正常设置和安装上述内容。完成后,使用 VPS 设置页面提供的 `ssh` 目标进行登录。这个 VPS 真正需要的唯一软件包是 `socat`。将使用 `socat` 将互联网流量导向本地的树莓派 Zero(因为 TierHive 是一个 NAT VPS 提供商)。还要注意,需要确保路由器正确转发端口。

TierHive HAProxy

现在将 TierHive 的 HAProxy Edge 服务与新设置的 VPS 关联起来。在 TierHive 管理界面中导航到“HAProxy”菜单,选择“添加域名”。输入自定义域名,并按照说明在 DNS 记录中添加一个 `TXT` 文件,用于验证域名。确认后,点击“配置后端”按钮,然后执行单服务器、区域访问、选择 VPS 服务器(使用下拉菜单选择 VPS)、设置端口(在示例配置中为 `80`)、保存等操作。这些更改大约需要 5 分钟才能生效。完成后,TierHive 的 HAProxy 将运行在小型 VPS 前面,指向本地树莓派 Zero!

在 VPS 上终止 TLS

现在可以停止操作,拥有一个可运行的网站。但主要问题是缺乏 TLS,在 2026 年,这对于网站来说并不理想。好消息是,TierHive 的 HAProxy 服务内置了自动 SSL 续订功能。只需在 HAProxy 管理页面的域名设置中点击“激活 SSL”。等待一段时间让更改生效,就大功告成了!现在所有的 TLS 握手都由 TierHive 处理,让树莓派专注于提供静态内容。

备份

使用这种设置进行备份非常简单。在同一网络中,可以简单地运行 `ssh root@YOUR-PI-ZERO-IP "dd if=/dev/mmcblk0 bs=4M" > zero-backup.img`。这个镜像为逐字节克隆。将其写入新卡,它将与当前的 microSD 卡一样启动。只需确保新 SD 卡的大小相同或更大!树莓派完全启动后,也可以自由取出 microSD 卡,因为它在内存中运行。然后可以将卡插入其他设备直接进行备份,而无需依赖不稳定的网络连接!

愉快托管!

就这么多了。乍一看可能有点复杂,但保证一旦开始,其实相当简单。希望这能激励其他人尝试自建网站!不过,建议远离这类大型互联网垄断企业。这有点违背了自建网站的初衷,不是吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值