开站记:Astro + Fuwari 在阿里云上搭一个博客
这个博客本身就是它的第一篇素材。手上有一台阿里云的小机器——2 核、1.6G 内存、40G 盘,Ubuntu 24.04——想把攒了很久的网络、运维笔记找个地方放。
选型
1.6G 内存直接决定了路线。Halo、Ghost 这类带后台的动态博客不是跑不动,而是跑起来就把内存吃得所剩无几,机器干不了别的了。静态生成没有这个问题:构建在本地做,服务器上只有 nginx 托一堆 HTML,内存占用约等于零。
静态方案里在 Hugo 和 Astro 之间选了 Astro + Fuwari 主题。Hugo 构建更快、教程更多,但 Astro 的主题现代感更强,以后想自定义组件的上限也更高。
部署
架构非常朴素:
本地写 Markdown → pnpm build → rsync dist/ → 服务器 nginx
服务器上不装 Node,不跑任何进程,只有 nginx。发布就是一个脚本:
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")"
pnpm build
rsync -az --delete dist/ root@服务器:/var/www/blog/
写完文章跑一下,几秒钟上线。
HTTPS
域名解析指到服务器后,certbot 一条命令搞定证书和 nginx 配置:
certbot --nginx -d www.example.cn -d example.cn --redirect
它会自动改 nginx 配置加上 443 和 HTTP 到 HTTPS 的跳转,续期由 certbot.timer 负责,之后不用管。唯一的坑:裸域和 www 的 DNS 记录要都指对,HTTP-01 验证是逐个域名回源校验的,指错一个整张证书都签不下来。
收尾的几个细节
- Fuwari 默认加载 Roboto 字体,对中文站毫无意义还拖慢首屏,删掉换系统字体栈
- 裸域 301 到
www,统一入口对 SEO 更友好 - nginx 给
/_astro/静态资源加了 30 天缓存——Astro 的产物文件名带哈希,可以放心immutable
机器还剩九成资源,后面有别的想法可以继续往上加。