部署到 Linux 服务器 + Nginx 的步骤记录


这篇示例文章记录本博客的部署流程,方便以后换服务器时照着重做一遍。实际部署前请先把 deploy.shnginx.conf.example 里的占位符替换成自己的服务器信息。

1. 本地构建

npm run build

构建产物在 dist/ 目录,同时 pagefind 会生成 dist/pagefind/ 搜索索引。整个 dist/ 就是要上传的全部内容。

2. 同步到服务器

项目根目录的 deploy.sh 封装了 rsync 增量同步:

bash deploy.sh

首次使用前,先编辑 deploy.sh 头部的 SERVER_USERSERVER_HOSTSERVER_PATH 三个变量。

3. Nginx 配置

参考项目根目录的 nginx.conf.example,要点:

  • root 指向服务器上存放 dist/ 内容的目录;
  • 开启 gzip,减小传输体积;
  • 静态资源(_astro/ 下的哈希文件)设置长缓存;
  • 用 Let’s Encrypt(certbot)签证书开启 HTTPS。

申请证书的命令大致是:

sudo certbot --nginx -d blog.example.com

4. 后续更新

以后每次写完文章,只需要两步:

npm run build
bash deploy.sh

静态站点没有数据库和运行时,服务器只需要一个 Nginx,非常省心。

评论

评论系统尚未配置。请前往 giscus.app生成配置,然后替换 src/config.tsGISCUS 常量的占位符。