perf: 为私有化部署默认启用资源压缩
Test deployment public URL (Linux) / test-linux (push) Waiting to run
Test start.ps1 (Windows) / test-windows (push) Waiting to run

This commit is contained in:
2026-08-04 23:35:48 +08:00
parent 9dc01e2411
commit 919a797510
3 changed files with 30 additions and 1 deletions
+6
View File
@@ -61,6 +61,12 @@ CONFIG_TRUSTED_PROXY=127.0.0.1,10.0.0.0/8
模板同时为 JSON、CSS、`application/javascript` 和 Nuxt 常用的 `text/javascript` 开启 Gzip`text/event-stream` 未加入压缩类型,SSE 和 WebSocket 保持流式传输。已经生成的域名配置不会随模板自动更新,旧部署需要手工把 `text/javascript` 加入现有 `gzip_types`,执行 `nginx -t` 成功后再无中断 reload。
前端静态资源默认使用 `STATIC_ASSET_COMPRESSION=auto`。浏览器支持 Brotli 时优先使用经过哈希和响应头验证的 CDN Brotli 资源;客户 CDN 尚未配置编码资源或验证失败时,自动切回 Nuxt 源站的 Brotli/Gzip,不会阻塞 Web 启动。旧部署更新 `docker-compose.yml` 后无需修改 `.env` 即可使用默认值。
私有化客户可继续只配置 `NUXT_APP_CDN_URL`。如果 CDN 已支持 canonical URL 的 BrotliEasyAI 会自动识别;如果希望 EasyAI 代为发布三套资源,再填写 `.env.sample` 中的 `STATIC_CDN_OSS_*` 最小读写凭据。上传对象使用 `__easyai_encoding/br``__easyai_encoding/gzip` 固定前缀,并携带正确的 `Content-Encoding`。也可由客户自己的流水线按该目录协议上传,EasyAI只负责验证。紧急回退可设置 `STATIC_ASSET_COMPRESSION=off`
CDN 验证结果保存在 `./data/cdn-init`,并与当前前端构建标识绑定;升级后旧结果会被忽略。任何密钥都只应放在本机 `.env` 或安全配置中心,不要提交到仓库。
`https.sh` 单独执行时也可以跳过域名选择:
```bash