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

IIS反向代理调用Node.js后端API出现HTTP Error 502.2错误

解决IIS反向代理HTTPS后端出现502.2 Bad Gateway的问题

核心原因

直接访问后端API正常但反向代理失败,大概率是IIS的ARR模块不信任后端的自签名HTTPS证书,导致代理请求无法建立安全连接,同时也需要排查Rewrite规则和ARR基础配置的细节。

具体解决步骤

1. 确认ARR模块已安装并启用

URL Rewrite的反向代理功能依赖Application Request Routing(ARR)模块,先完成基础配置:

  • 打开IIS管理器,点击服务器节点,检查右侧功能列表是否有Application Request Routing Cache
  • 若未安装,需下载匹配IIS版本的ARR和URL Rewrite模块并安装
  • 启用代理:点击服务器节点 → 打开Application Request Routing Cache → 右侧点击Server Proxy Settings → 勾选Enable proxy后保存

2. 让ARR信任自签名证书

自签名证书默认不被IIS信任,需手动添加到信任列表:

  • 在IIS管理器的服务器节点下,打开Application Request Routing Cache
  • 进入Server Proxy Settings → 切换到SSL Offloading标签页
  • 勾选Enable SSL Offloading,点击Add按钮导入后端的自签名证书
  • 也可通过命令行批量导入(替换证书路径为实际路径):
    certutil -addstore "Root" "C:\your-path\backend-cert.cer"
    

3. 优化Rewrite规则细节

调整现有规则,避免路径或主机名匹配问题:

  • 将目标URL中的127.0.0.1改为localhost,确保和后端证书的通用名称(CN)匹配(自签名证书通常CN为localhost)
  • 可拆分匹配组确保路径拼接准确,修改后的规则示例:
    <rule name="ReverseProxyInboundRule1" enabled="true" stopProcessing="true">
        <match url="^(apis/)(.*)" />
        <action type="Rewrite" url="https://localhost:444/{R:1}{R:2}" appendQueryString="true" logRewrittenUrl="true" />
        <conditions>
            <add input="{REQUEST_METHOD}" pattern="^(GET|POST|PUT|DELETE)$" />
        </conditions>
    </rule>
    

4. 检查后端站点绑定与权限

  • 确认后端站点的HTTPS绑定使用的是目标自签名证书,且绑定主机名为localhost
  • 检查后端站点的Authentication设置,确保允许匿名访问或配置了正确的身份验证方式,避免代理请求被拒绝

5. 启用失败请求跟踪排查细节

若以上步骤无效,启用IIS失败请求跟踪定位具体原因:

  • 为前端站点启用失败请求跟踪,指定跟踪状态码502.2
  • 查看生成的日志文件,可获取代理请求失败的详细触发点(如证书验证错误、连接超时等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 02:40:16