IIS 在 ARR 之前重写位置标头

Dan*_*ite 5 iis http arr

我们有一个重写配置,在如下配置中将 ARR 视为反向代理:

Browser client (OriginA) <-> IIS/ARR (OriginB) <-> Server
Run Code Online (Sandbox Code Playgroud)

客户端是任意数量的网络浏览器。我们无法更改此配置。

  1. 客户端请求http://originb/return,请求中包含http://origina/done.html等 URL。
  2. 然后 ARR 将请求转发到http://server/return
  3. 服务器响应时将Location标头设置为http://origina/done.html和 HTTP 302。我已使用 Wireshark 验证了这一点。
  4. 管道中的 IIS 正在将Location标头更改为http://originb/done.html这就是问题开始的地方。
  5. ARR 在标头的 PATTERN_MATCH 步骤中查看 originb URL Location
  6. ARR 将 originb URL 报告为LocationGENERAL_RESPONSE_HEADERS 步骤中的标头。
  7. 客户端盲目接受URL并重定向到不存在的http://originb/done.html而不是http://origina/done.html

我已经启动了失败请求跟踪,这就是我看到的第 5 步和第 6 步。

是什么导致 IISLocation在 ARR 之前重写标头?我可以使用其他任何 IIS 工具来解决这个问题吗?

Dan*_*ite 6

我的 Googlefu 今天让我失望了。

Server Proxy SettingsIIS 管理器的窗格中,我需要取消选中“在响应标头中反向重写主机”。