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

如何在IIS Rewrite模块中设置代理请求头(等效Nginx proxy_pass)

在IIS中配置自定义代理请求头(对应Nginx的proxy_set_header)

要在IIS中实现类似Nginx里添加custom-host自定义请求头并反向代理的效果,需要依赖URL Rewrite和**Application Request Routing (ARR)**模块,并且正确配置Server Variables。以下是完整的解决方案:

一、前提条件

  1. 安装URL Rewrite模块和ARR模块(可通过IIS管理器的“Web平台安装程序”搜索安装)
  2. 启用ARR的反向代理功能:打开IIS管理器 -> 服务器节点 -> 双击“Application Request Routing Cache” -> 右侧点击“Server Proxy Settings” -> 勾选“Enable proxy”并保存

二、关键配置步骤(解决你的配置不生效问题)

你的原配置未生效的核心原因是未将自定义Server Variable添加到允许列表,同时存在冗余配置。按以下步骤修正:

1. 允许自定义Server Variable

  • 打开IIS管理器,选中目标站点
  • 双击右侧的“URL Rewrite”模块
  • 在右侧操作栏点击“View Server Variables”
  • 点击“Add”,输入HTTP_CUSTOM_HOST(注意:IIS中自定义请求头对应的Server Variable规则是:前缀HTTP_ + 原请求头名称的横杠替换为下划线,全部大写,比如custom-host对应HTTP_CUSTOM_HOST)
  • 点击“OK”保存

2. 正确的web.config配置

移除冗余的rewriteMaps节点,修正后的配置如下:

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="ReverseProxyWithCustomHeader" stopProcessing="true">
                    <match url="(.*)" />
                    <action type="Rewrite" url="https://certificate-testsite.com/{R:1}" />
                    <serverVariables>
                        <!-- 映射到自定义请求头custom-host -->
                        <set name="HTTP_CUSTOM_HOST" value="your-domain.com" />
                    </serverVariables>
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

3. 说明

  • Server Variable名称HTTP_CUSTOM_HOST会被IIS自动转换为请求头custom-host(下划线转回横杠,去掉HTTP_前缀)发送到目标站点
  • action type="Rewrite"配合ARR启用的代理功能,会将请求转发到目标URL
  • 如果需要动态设置值,可以将value改为变量,比如{HTTP_HOST}获取当前请求的Host

三、验证配置是否生效

可以通过以下方式验证:

  • 使用浏览器开发者工具(F12)查看网络请求,检查发送到目标站点的请求头中是否包含custom-host: your-domain.com
  • 在目标站点的后端代码中打印所有请求头,确认custom-host存在

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 05:03:14