背景:我将传入的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行的请求网址:http://server3:8080/tfs
。我可以在内部浏览就好了。外部网址为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
。
这里发生了什么?这是一个谜。
答案 0 :(得分:0)
好的,我明白了。
我安装了URL Rewrite和ARR Modules,但我还没有启用代理处理。
我创建了一个虚拟反向代理规则,并提示在IIS中启用它。我这样做了,删除了虚拟规则,现在一切都按预期工作了。