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

IIS 10跨域调用多服务的URL Rewrite配置方法

在Windows Server 2022的IIS 10中配置URL转发实现服务映射

要实现将xyz.com/serviceN转发到abc.com:端口/serviceN的需求,需要用到IIS的URL Rewrite模块和反向代理功能,具体步骤如下:

1. 安装必备组件

首先确保你的IIS已经安装了URL Rewrite和**Application Request Routing (ARR)**扩展:

  • 打开IIS管理器,点击顶部的服务器节点,在右侧「管理」区选择「Web平台安装程序」。
  • 搜索并安装「URL Rewrite」和「Application Request Routing」两个组件,安装完成后重启IIS管理器。

2. 启用反向代理功能

ARR是实现反向代理的核心,需要先开启:

  • 在IIS管理器中选中服务器节点,在功能视图里找到「Application Request Routing Cache」并双击打开。
  • 点击右侧操作面板的「Server Proxy Settings」,勾选「Enable proxy」选项,然后点击「应用」。

3. 配置URL Rewrite规则

接下来针对每个服务创建转发规则,你可以选择图形界面操作或者直接编辑web.config:

方式一:图形界面配置

  1. 选中xyz.com对应的网站节点,打开「URL Rewrite」功能。
  2. 点击右侧「Add Rule(s)...」,选择「Blank Rule」后点击「OK」。
  3. 配置service1的规则:
    • 名称填「Forward service1 to abc.com:1234」
    • 匹配URL区域:
      • 「Requested URL」选「Matches the Pattern」
      • 「Using」选「Regular Expressions」
      • 「Pattern」输入^service1(/.*)?$(匹配service1开头的所有路径,包括xyz.com/service1和xyz.com/service1/xxx)
      • 勾选「Ignore case」
    • 操作区域:
      • 「Action type」选「Rewrite」
      • 「Rewrite URL」输入http://abc.com:1234/service1{R:1}({R:1}会保留原请求的后续路径)
      • 勾选「Append query string」(保留原请求的查询参数)
      • 可选勾选「Stop processing of subsequent rules」(避免后续规则干扰当前请求)
  4. 点击「应用」,重复上述步骤创建service2的规则:
    • 匹配Pattern改为^service2(/.*)?$
    • 重写URL改为http://abc.com:5678/service2{R:1}
  5. 其他服务按同样格式添加规则即可。

方式二:手动编辑web.config

如果更习惯直接修改配置文件,找到xyz.com网站根目录下的web.config(没有的话新建),添加以下内容:

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <!-- 转发service1到abc.com:1234 -->
        <rule name="Forward service1" stopProcessing="true">
          <match url="^service1(/.*)?$" />
          <action type="Rewrite" url="http://abc.com:1234/service1{R:1}" appendQueryString="true" />
        </rule>
        <!-- 转发service2到abc.com:5678 -->
        <rule name="Forward service2" stopProcessing="true">
          <match url="^service2(/.*)?$" />
          <action type="Rewrite" url="http://abc.com:5678/service2{R:1}" appendQueryString="true" />
        </rule>
        <!-- 新增其他服务规则请复制上述模板修改 -->
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

4. 验证配置

  • 访问xyz.com/service1和xyz.com/service2,检查是否正确转发到对应地址。可以通过浏览器的开发者工具查看请求的实际跳转目标,或者使用curl命令测试。
  • 注意确保abc.com服务器的防火墙允许xyz.com服务器访问1234、5678等目标端口,否则请求会被拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 21:10:19