IIS - 重写 Url 虚拟 url

问题描述 投票:0回答:1

我有两个用 net Framework 4.5 编写的 Web 应用程序。第一个是前端应用程序,第二个是公开一些 api 的后端应用程序。两者位于两个独立的域上,并且位于不同的端口上。第一个应用程序使用 jquery 调用第二个应用程序的 api。 这样浏览器必须能够到达两个域和两个端口。相反,我希望浏览器仅到达前端,而 IIS 通过 url 重写器转发到后端。为此,我希望 jquery 在一个不是真实的、而是虚拟的路径上调用与前端相同的域,例如 /api,虚拟的,因为在前端没有包含资源的 api 文件夹以及对 / 的所有请求api被转发到后端。我写了以下规则,但我得到http错误502

    <rules>
        <rule name="Rewrite API requests" enabled="true">
          <match url="^api/(.*)$" />
          <conditions>
            <add input="{REQUEST_URI}" pattern="^/api/" />
          </conditions>
          <action type="Rewrite" url="http://api.dominio.local/api/{R:1}" />
        </rule>
    </rules>
asp.net-mvc iis url-rewriting
1个回答
0
投票

要在 IIS 上设置反向代理,需要安装应用程序请求路由模块。

安装所需软件后,请按照以下步骤操作。

  • 打开 IIS 管理器。
  • 在左侧的“连接”窗格中选择您的服务器。
  • 在中心窗格中,双击应用程序请求路由缓存。
  • 点击右侧“服务器代理设置”。
  • 选中“启用代理”框并单击“应用”。

启用代理后,清除浏览器缓存并再次尝试重写规则,看看是否有效。

© www.soinside.com 2019 - 2024. All rights reserved.