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

Azure中两个Web App实现原IIS跨站虚拟目录资源访问方案咨询

解决方案汇总

下面是3种经过验证的可行配置方式,你可以根据自身业务场景选择:

方案1:将共享资源迁移到Azure存储账户(推荐)

这个方案最符合云原生架构,后续扩展其他站点共享也最方便:

  • 把Engine站点下存放图片、PDF的子目录所有资源上传到Azure Blob存储的独立容器中,配置容器的公共访问级别为Blob(匿名读取访问)
  • 在Consumer站点的配置文件里把原来指向虚拟目录的资源路径前缀,统一替换为Blob容器的访问前缀
  • 可选配置自定义域名绑定到Blob存储,保持路径和原有形式一致
  • 优势:不需要修改两个应用的代码,性能比直接调用另一站点更高,还可以搭配CDN做全球加速,存储成本也比存到Web App本地低

方案2:配置反向代理实现路径映射

如果不想改资源存储位置,要保持原来的路径结构,可以用Azure Web App自带的反向代理功能实现:

  • 进入Consumer Web App的Azure管理页,在开发工具分类下找到高级工具(Kudu),进入站点根目录的site/wwwroot文件夹
  • 如果根目录没有web.config文件就新建,已有的话就编辑,在文件中添加如下反向代理规则:
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Proxy_Engine_Resources" stopProcessing="true">
          <!-- 匹配原来的虚拟目录路径,比如原来虚拟目录叫/shared-res,就填/shared-res/(.*) -->
          <match url="^shared-res/(.*)" />
          <action type="Rewrite" url="https://[你的Engine站点域名]/[资源子目录路径]/{R:1}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>
  • 保存配置后重启Consumer Web App即可生效
  • 注意:如果Engine站点开启了IP限制,需要把Consumer Web App的出站IP加到Engine的访问白名单里

方案3:给Engine站点配置跨域资源共享(CORS),直接调用Engine的资源路径

如果能接受资源路径直接显示Engine的域名,配置最简单:

  • 进入Engine Web App的Azure管理页,找到API分类下的CORS配置
  • 添加Consumer站点的域名到允许的源列表,勾选允许凭据(如果需要的话),保存配置
  • 把Consumer站点里所有指向原来虚拟目录的资源链接,直接替换为Engine站点对应的资源完整路径即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:15:04