文章

开发 · 2026 年 8 月 20 日

这个网站是怎么搭起来的

访客访问零动态负载:静态展示站 + 管理后台 + 按需构建的发布流程。

这个网站是怎么搭起来的

目标

自己打理一个作品集站点,要求很简单:访客快、服务器省、写作顺手。

架构

整体分三块:

  • 展示站: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。