背景
我们正在测试一对 Windows 2008 R2(IIS 7.5)Web 服务器以及一个硬件负载平衡器(外部设备),该平衡器将进入两台服务器之间的虚拟 IP 的端口 80 流量拆分。
两台服务器上都设置了一个测试网站(每台服务器都有一份副本)。一个地址用于通过 VIP 访问网站,另一个地址用于在服务器 #1 上直接访问网站,还有一个地址用于在服务器 #2 上直接访问网站。
在 IIS 中,在两台服务器上,绑定设置如下(我使用共享配置,这就是为什么两台服务器都具有所需的所有绑定):
Type Host Name Port IP Address
HTTP address-resolving-to-server-1 80 Public-IP-of-server-1
HTTP address-resolving-to-server-2 80 Public-IP-of-server-2
HTTP address-resolving-to-VIP 80 Public-IP-of-server-1 *
- 这可能不是允许通过 VIP 的流量在服务器之间分配的正确绑定,但至少它允许网站出现在 VIP 上。
到今天为止,一切运行正常——可以通过所有 3 个地址访问测试网站。
两台服务器上都安装了 Reporting Services 2008 R2。自运行安装向导以来,配置没有改变。报表服务器和报表管理器的绑定如下所示:
IP 地址:全部分配(推荐) TCP 端口:80 SSL 证书:无
报告服务也运行良好。
问题 !!
服务器 #1 上的 Reporting Services 配置发生了更改,从那时起,测试网站就无法通过负载平衡器访问。Web 客户端挂起约 30 秒,然后返回 502 - 连接失败错误。
直接在服务器 #1 上访问测试网站和直接在服务器 #2 上访问测试网站仍然有效。
这是在 Reporting Services 中所做的配置更改:
在报告服务器(Web 服务 URL)部分下,我们单击“高级”并编辑现有的 HTTP 身份记录,并将其从监听“所有分配的”IP 地址更改为特定的主机头名称(服务器的 NETBIOS 名称)。
进行此更改后,测试网站将无法再通过负载均衡器访问,但仍可在服务器 #1 和服务器 #2 上直接访问。更改后,Reporting Services 继续正常工作。
我们将 Reporting Services 的配置恢复为原始设置,但问题仍然存在。
我们尝试重新启动所有与 IIS 相关的服务,甚至重新启动服务器,但这没有任何作用。
我们在 Windows 系统或应用程序日志中没有看到相关错误。
我认为这个问题一定与所描述的“URL 预留”有关这里但我真的很困惑为什么将 RS 绑定设置回默认设置并没有解决问题。看来 RS 已经永久地破坏了服务器!
答案1
搞清楚了!这不是直接的 Windows、IIS 或 Reporting Services 问题。以下是答案,希望它能帮助其他人:
负载平衡器内置有“健康检查”监视器,可定期检查是否可以通过默认网站访问特定文件。RS 的重新配置一定导致默认网站关闭(我猜是因为 RS 和默认网站都配置为侦听相同的主机头、IP 和端口,并且 RS 被选为“赢家”)。
因此,负载均衡器健康检查开始失败并自动关闭!不再有流量可以通过它。