URL 重写期间出现奇数 404

Odd 404 during URL rewrite

背景:我正在将传入的 80/443 流量转发到 \SERVER2; TFS 在 \SERVER3 上 运行。我希望将所有与 TFS 相关的请求路由到 \SERVER3。我必须这样做,因为我是 \SERVER2 上的 运行 Server Essentials,它非常挑剔,在 URL 重写下不能很好地工作(几乎和 SharePoint 一样糟糕,但不完全是).

这是默认网站上的唯一规则:

<rule name="TFS Rewrite" stopProcessing="true">
  <match url="^tfs(.*)" />
  <action type="Rewrite" url="http://server3:8080/{R:0}" />
</rule>

...这是失败的请求日志:https://1drv.ms/f/s!AodXF_j3BiWkhPAZwjnwC-rAecVgtw

请注意 PDF 第 87 行所请求的 URL:http://server3:8080/tfs。我可以在内部浏览到那个就好了。外部URL是https://tfs.domain.com/tfs.

下一个完全特定于文件的条目是 404 本身,位于第 165 行。

我就是不明白。这是一个简单的规则。为什么 IIS 会为明显有效且有效的 URL 显示 404?

编辑

作为测试,我添加了这个条件:

  <conditions>
    <add input="{HTTP_HOST}" pattern="tfs.domain.com" />
  </conditions>

现在,如果我浏览到 https://tfs.domain.com/,则会加载默认网站。

这与日志一起似乎表明,虽然 IIS 正在重写 URL,但流量实际上并未路由到 \SERVER3

这是怎么回事?这是一个谜。

好的,我成功了。

我安装了 URL Rewrite 和 ARR 模块,但我还没有启用代理处理。

我创建了一个虚拟反向代理规则,系统提示我在 IIS 中将其打开。我这样做了,删除了虚拟规则,现在一切都按预期工作了。