- docs/DEPLOY.md: 阿里云 OSS/COS + CDN 部署流程,含前置条件(域名/备案/ AK/DNS 归属)、部署包白名单、分层缓存策略、上线验收清单、腾讯云/CF 备选 - deploy.sh: 只同步白名单文件(index.html/src/vendor/public)到 OSS, 按资源类型设缓存头(vendor 长缓存/app 代码 no-cache),支持 --dry-run Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.1 KiB
3.1 KiB
部署 Runbook — 阿里云 OSS/COS + CDN
yinji 是 100% 静态站(无构建步骤,无后端,文件不出浏览器)。部署即静态资源分发。 目标: 阿里云 OSS(或腾讯云 COS)静态网站托管 + CDN 加速 + HTTPS。
前置条件(阻塞项,需先落实)
| 事项 | 归属 | 说明 |
|---|---|---|
| 域名确定 | modiqi(业务) | 默认建议 yinji.modiqi.com;最终由 modiqi 拍板 |
| 域名备案 | modiqi/DevOps | 国内 CDN + 自有域名必须备案。yinji.modiqi.com 依赖 modiqi.com 已备案(子域名可复用主体备案) |
| 阿里云账号 + AK/SK | DevOps/modiqi | OSS bucket 创建与 AccessKey 属账号/基础设施层,wenpai 不持有需申领 |
| DNS 解析(CNAME 到 CDN) | DevOps | 域名 CNAME 指向 CDN 加速域名 |
ossutil 工具 |
wenpai(本机) | 上传工具,ossutil config 配 AK/SK/endpoint |
wenpai 负责应用部署(资源同步 / 缓存策略 / vhost 逻辑);账号、AK/SK、DNS、备案属 DevOps/业务,需协同。
部署包边界(只上传这些)
index.html
src/ (全部 .js / .css)
vendor/ (fabric / pdf.js / pdf-lib / lucide)
public/ (favicon / 图标)
不上传: docs/ tests/ tools/ *.pdf(夹具) *.png(截图) AGENTS.md CLAUDE.md README.md .codex/ .git/。
deploy.sh 已按此白名单同步。
缓存策略(关键)
无构建=无内容哈希文件名,故按"是否随发版变化"分层:
| 资源 | Cache-Control | 理由 |
|---|---|---|
index.html |
no-cache(每次校验) |
入口,发版必须立即生效 |
src/** |
no-cache 或 max-age=300 |
应用代码,随发版变 |
vendor/** |
max-age=31536000, immutable |
第三方库,版本固定基本不变 |
发版后如 CDN 有旧缓存,对
index.html+src/做 CDN 刷新(refresh),vendor/走预热/长缓存。
执行步骤
# 1. 配置 ossutil(一次性,AK/SK 向 DevOps 申领)
ossutil config # 填 endpoint / AccessKeyID / AccessKeySecret
# 2. 干跑确认将上传的文件集
cd ~/Projects/yinji
BUCKET=oss://<bucket-name> ./deploy.sh --dry-run
# 3. 正式同步(带缓存头)
BUCKET=oss://<bucket-name> ./deploy.sh
# 4. OSS 控制台开启"静态网站托管": 默认首页 index.html
# 5. 绑定 CDN 加速域名, 回源 OSS; 配 HTTPS 证书(LE 或已有通配符)
# 6. 强制 HTTPS + HTTP/2; index.html/src 缓存按上表设置
# 7. DNS: 域名 CNAME → CDN 加速域名(DevOps)
上线验收(不能只测首页)
DOMAIN=yinji.modiqi.com
curl -skI https://$DOMAIN/ | grep -i "http/\|cache-control" # 200 + no-cache
curl -skI https://$DOMAIN/vendor/fabric.min.js | grep -i "cache-control" # 长缓存
# 浏览器实测: 打开文件→选印章→盖章→导出 PDF/PNG→批量; 移动端布局; 无 CSP 违规(控制台)
验收标准遵循集群规范: 完整前后台流程 + 无控制台报错,不能只测首页。
备选
- 腾讯云 COS: 同构,
coscli替ossutil,静态托管 + CDN 同理。 - 海外/全球访问: OSS 源站 + Cloudflare 前置,或直接 Cloudflare Pages(git 驱动免运维)。