返回博客列表
技术

0

静态站 Docker 部署备忘

Astro / 静态站构建后用 Nginx 镜像 + Compose 托管,再反代到自己的域名。

个人博客这类 静态站,最省心的路径往往是:本地(或 CI)build 出 dist,再用 Docker + Nginx 挂出去,前面接反代与 HTTPS。

为什么用 Docker

  • 环境和线上一致,少一句「我这边能跑」
  • 升级、回滚就是换镜像 / 换挂载目录
  • 和现有服务器上的其它容器(反代、监控)好放一起

本站也提供了可选的 docker compose 示例:构建产物进 Nginx,映射 8080→80。

推荐流程

  1. 构建
    npm run build,确认 dist 里是纯静态文件。
  2. 镜像
    多阶段构建:Node 阶段 build,Nginx 阶段只拷贝 dist。
  3. Compose
    固定重启策略、端口、只读挂载(若用卷同步产物)。
  4. 反代
    宿主机 Nginx / Caddy 把 blog.example.cn 指到容器端口,并上证书。
  5. 发布
    git push → CI 构建 → rsync / SSH 拉新产物或重新 compose up -d --build。

Nginx 静态站要点

  • try_files 配好 SPA / 多页路由(Astro 多页通常按目录 index.html)
  • 开 gzip / brotli,静态资源长缓存,index.html 短缓存或不缓存
  • 安全头按需加:X-Content-Type-Options、Referrer-Policy 等

常见坑

现象排查
构建阶段拉不到 npm构建机网络 / registry 镜像
页面 404try_files 与 Astro output 格式是否匹配
样式丢失base 路径、CDN 或反代路径前缀
证书失败反代是否指到正确 upstream、80/443 是否放行

小结

静态站不必上重型应用运行时。 构建一次、Nginx 托管、Compose 固定、反代收口,对个人博客和小型官网足够稳。有域名和一台小主机,就可以按这个模板套。