You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何加快Azure App Service Zip部署速度并规避站点维护空白页问题

加快Zip Deploy部署速度的实用技巧

  • 优化部署包体积:Nuxt 生产构建时启用 Tree Shaking,执行nuxt build --analyze排查并替换体积过大的第三方依赖,将静态资源(图片、音视频等)迁移至 CDN 存储,不要打包进部署包,将106MB的部署包压缩到30MB以内即可看到明显的速度提升。
  • 启用增量部署:在 Azure App Service 应用配置中添加参数SCM_ZIPDEPLOY_DONOT_PURGE=1,关闭 Zip Deploy 默认的全量站点目录清空逻辑,仅覆盖存在差异的文件,大幅减少磁盘写入耗时,存在废弃文件需要清理时可定期执行一次全量部署即可。
  • 直接从压缩包运行应用:在应用配置中添加参数WEBSITE_RUN_FROM_PACKAGE=1,这是 Azure 官方推荐的部署模式,不需要将压缩包全部解压到磁盘,省略解压+文件写入步骤,部署后应用启动速度提升数倍。
  • 禁用服务端二次构建:确认应用配置中SCM_DO_BUILD_DURING_DEPLOYMENT参数设置为false,所有依赖安装、生产构建步骤全部在 Appveyor 端完成,避免部署到 Azure 后再执行耗时的 npm 相关操作。
  • 精简 node_modules:Appveyor 构建完成后执行npm prune --production移除所有 devDependencies,可将 node_modules 体积缩减50%以上。

避免Site Under Construction空白页的方案

你提到的先解压到临时目录、完成操作后再切换文件的逻辑完全可行,可通过以下几种方案实现:

  • 使用部署槽位(Deployment Slot):为当前应用新增 staging 部署槽,所有代码先部署到 staging 槽,待应用启动完成、功能验证正常后执行槽位交换,交换操作是秒级原子操作,全程不会出现站点不可用的情况,也不会暴露建设中页面给用户。
  • 启用预热+健康检查:在应用配置中添加WEBSITE_LOCAL_CACHE_OPTION=Always、WEBSITE_SWAP_WARMUP_PING_PATH=/(路径替换为你站点的健康检查接口地址),部署时 Azure 会先完成应用预热、确认健康检查通过后再将流量切到新版本,不会出现长时空白页。
  • 手动实现原子切换:如果不想用官方提供的槽位功能,可以通过 Kudu 接口自行实现流程:上传 Zip 包后调用 Kudu 命令接口将文件解压到d:\home\site\wwwroot_temp目录,所有预处理操作完成后先暂停站点进程,将旧的wwwroot重命名为备份目录,再将wwwroot_temp重命名为wwwroot,最后启动进程,整个停机时间可控制在1秒以内。

内容的提问来源于stack exchange,提问作者Marius Mikelsen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:30:05