---
description: 前端静态站部署到 nginx（releases + 软链原子切换，reload nginx）
applicable: [static, frontend]
requires: [nginx]
buildSource: artifact
variables:
  - key: deployRoot
    label: 部署根目录
    default: "/var/www/{{project}}"
    required: true
  - key: serverName
    label: nginx server_name（仅备注用）
    required: false
---

# 前端静态站 · nginx

把本地构建好的静态产物（dist）打包上传，按 releases + 软链原子切换发布，最后 reload nginx。

> nginx 的站点 root 应指向 `{{deployRoot}}/current`（一次性配置，不在本配方内）。
> 例：`root {{deployRoot}}/current;`

```bash stage:release on:target
# current 软链已由引擎切到新 release；reload 让 nginx 重新打开目录句柄（静态文件无需重启）
nginx -t && nginx -s reload
```

```bash stage:health on:target
# 探测 current 下有 index.html，且 nginx 在监听
test -f {{deployRoot}}/current/index.html && (pgrep -x nginx >/dev/null || systemctl is-active nginx)
```
