IIS 在 ARR 之前重写位置标头

IIS 在 ARR 之前重写位置标头

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

Browser client (OriginA) <-> IIS/ARR (OriginB) <-> Server

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

  1. 客户请求http://originb/return使用如下 URLhttp://origina/done.html在请求中。
  2. 然后 ARR 将请求转发给http://服务器/返回
  3. 服务器响应Location标头设置为http://origina/done.html和 HTTP 302。我已经用 Wireshark 验证了这一点。
  4. 管道中的某个位置的 IIS 正在将Location标头更改为http://originb/done.html问题就在这里。
  5. ARR 在标头的 PATTERN_MATCH 步骤中看到 originb URL Location
  6. LocationARR在 GENERAL_RESPONSE_HEADERS 步骤中将originb URL 报告为标题。
  7. 客户端盲目接受 URL 并重定向到不存在的http://originb/done.html代替http://origina/done.html

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

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

答案1

今天我的 Googlefu 让我失望了。

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

答案2

在 IIS 7 中,单击服务器运行 AAR/进行重写(多于站点、应用程序池等) - 然后打开“应用程序请求路由缓存”。在右侧“操作”窗格的“操作”菜单中,在“代理”下,单击“服务器代理设置”。在出现的对话框中,确保“在响应标头中反向重写主机”已启用未选中(见图)。

带有勾选框图像的对话

相关内容