这个网站是怎么搭起来的
访客访问零动态负载:静态展示站 + 管理后台 + 按需构建的发布流程。
目标
自己打理一个作品集站点,要求很简单:访客快、服务器省、写作顺手。
架构
整体分三块:
- 展示站:Astro 在构建期把所有页面渲染成纯静态 HTML,Nginx 直接返回
- 管理后台:Vue 3 单页应用,照片、文章、项目都在这里录入
- 后端 API:Fastify + Prisma,只在管理员操作时活跃,空闲内存不到 120MB
发布流程
后台点一下「发布」,后端以最低优先级跑一次构建,输出到新目录后原子替换:
location /api/ {
proxy_pass http://127.0.0.1:8080;
client_max_body_size 10M;
}
构建期间访客看到的一直是旧版本,替换瞬间切换,没有停机窗口。
图片策略
图片在上传前于本地完成优化(WebP、1600–2400px、单张 500KB 以内),服务器端不做任何图片处理——没有 Sharp,没有缩略图管线,Nginx 对 /uploads/ 直接 sendfile。