提问人:Hoshi 提问时间:11/8/2023 最后编辑:Hoshi 更新时间:11/15/2023 访问量:66
IIS {SERVER_NAME} 不返回主机名
IIS {SERVER_NAME} not returning hostname
问:
使用 IIS“Server 2016”v10.0.14393.0,我有一个 web.config URLRewrite 规则,用于将入站连接重定向到处理它们的 NodeJS 应用程序:
<rule name="WebSocket" enabled="true" stopProcessing="true">
<match url="wsapp/(.*)" />
<action type="Redirect" url="https://{SERVER_NAME}:7899/{R:1}" redirectType="Temporary" />
</rule>
使用嵌入 IIS 服务器侦听端口号的 DNS/F5 别名访问服务器:该别名解析为两个负载平衡服务器之一。https://test-server/wsapp/local/47143
两年前,此重写会将客户端定向到 F5 选择的服务器的 FQDN:但现在不是了!307 - Location: https://mqa907b422x.testing.com:7899/local/47143
现在,它正在重用 DNS 别名并将客户端发送到具有 2 个端口号和无法访问的路径的完全虚假的地址。https://test-server:7899/local/47143
我看了看,它说“localhost is resolved using DNS”,没有关于本地主机名的行。/Windows/system/drivers/etc/hosts
IIS 如何解析?当我在盒子上执行操作时,它会返回主机的实际名称,但 IIS 不会!有人是怎么搞砸的?我应该更改什么才能恢复“服务器的主机名、DNS 别名或 IP 地址”的正确功能,因为它将显示在自引用 URL 中?(返回的别名不是自引用的,而是负载均衡器别名。{SERVER_NAME}
nslookup
顺便说一句,GitHub Copilot (ChatGPT) 说这种新行为是正确的,并且取自请求的标头,但这不是文档所说的,也不是我以前的经验。专门用于绕过 DNS 别名并获取与本地计算机的连接。{SERVER_NAME}
Host:
{SERVER_NAME}
答: 暂无答案
评论
{SERVER_NAME}
{HTTP_HOST}
HTTP_HOST
SERVER_NAME
{SERVER_NAME}