IIS 10反向代理BI内部服务器失效,请求排查解决
解决IIS 10反向代理404问题的排查步骤
1. 修正URL匹配规则的核心错误
IIS的URL重写规则里,<match url>匹配的是域名之后、查询参数之前的路径,且不带开头的斜杠。你写的/bi/(.*)会直接匹配失败,因为实际请求的路径是bi/Dashboards/...(没有开头的/)。
把匹配规则改成:
<match url="bi/(.*)" />
2. 恢复查询参数的传递
你设置了appendQueryString="false",但原请求的?rs:embed=true参数需要转发到目标地址,必须改成appendQueryString="true"(默认值即为true,也可显式设置)。
修正后的action节点:
<action type="Rewrite" url="https://192.168.1.77:9998/reports/powerbi/{R:1}" appendQueryString="true" />
3. 确认反向代理组件已安装并启用
- 检查IIS服务器节点的功能视图,确认已安装Application Request Routing (ARR) 和 URL Rewrite 模块
- 若未安装,直接从IIS官方渠道下载安装这两个组件
- 安装完成后启用ARR代理:点击服务器节点→打开"Application Request Routing Cache"→右侧操作栏点击"Server Proxy Settings"→勾选"Enable proxy"后点击应用
4. 最终可用的完整配置
替换成以下配置后重新测试:
<rewrite> <rules> <rule name="IB Proxy" stopProcessing="true"> <match url="bi/(.*)" /> <action type="Rewrite" url="https://192.168.1.77:9998/reports/powerbi/{R:1}" appendQueryString="true" /> </rule> </rules> </rewrite>
额外排查点
- 直接在浏览器中访问目标地址
https://192.168.1.77:9998/reports/powerbi/Dashboards/Pretrial%20PSA%20Dashboard?rs:embed=true,确认其本身可正常访问 - 查看IIS日志(默认路径
C:\inetpub\logs\LogFiles),找到对应404请求的cs-uri-stem和cs-uri-query字段,确认重写规则是否触发 - 启用URL重写日志:在站点的URL Rewrite面板中,点击右侧"View Rewrite Logs",可查看规则匹配的详细过程,快速定位匹配失败原因
内容的提问来源于stack exchange,提问作者Megh
相关产品推荐
相关产品推荐

