在我的工作中,我们目前正在解决有关 IIS 的问题。我们在几台 IIS 服务器上使用 F5 负载平衡器,因此可以处理一台服务器暂时从池中取出的情况,但我们担心 Windows 更新重新启动可能会对正在进行的 IIS 事务产生影响。
我们的 IIS 应用程序全天候处理大量事务。我们目前正在自动修补服务器,因此在维护时段内可能会发生一些重启。
当我们(安全地,而不是崩溃)重新启动计算机时,当前通过 IIS 处理的事务会丢失吗?或者 Windows 是否会在关闭之前给 IIS 服务足够的时间来完成这些事务,从而允许我们的其他负载平衡服务器处理流量?
我发现了很多有关重置 IIS 的问题,但我不确定它们是否适用于机器重启。
答案1
IIS 不会在计划关闭期间“正常”关闭连接。用户会话将被重置,如果您不管理 BIG-IP,会话仍将发送到已关闭的服务器节点,直到 BIG-IP 虚拟服务器监视器将其标记为已关闭并将流量重新分配到其他节点。请注意,大多数 IIS 监视器/服务监视器会很快注意到这一点,但由于它是用户定义的,我想我会调出它。
为了减少或缓解此问题,您需要在 GUI 中手动将节点标记为离线,或通过 BIG-IP 的 API 调用将节点标记为离线,例如 (控制REST)。这将阻止新连接路由到即将进行维护的服务器,并允许现有会话根据需要耗尽并重新分配。
例外情况是长期建立的会话可能会持续比您希望的更长的时间。在这些情况下,有时您需要通过在 BIG-IP 中将节点标记为“强制脱机”来强制脱机连接。这将重置现有连接并将新连接分发到其他节点。这不是理想的做法,但它比重置 IIS 并允许连接重置(而 BIG-IP 监视器在将节点标记为关闭之前失败 X 次)要好。
以下是您的操作顺序:
- 将节点标记为已禁用。
- 允许 X 时间将活动会话转移到其他 IIS 节点
- 如果任何会话保持活动状态的时间过长,则将节点标记为强制脱机(取决于应用程序的预期用途)
- 为 IIS 做任何你需要的事情
- 在 BIG-IP 中将池成员(节点)标记为在线之前,请重新启动 IIS 并验证运行。
这可以在 BIG-IP 中通过机载脚本或安全管理系统的 API 调用自动实现。
您可以在 BIG-IP(在虚拟服务器统计信息中)中或通过您首选的管理软件监控到您节点的流量。这将允许您确定每个节点的现有连接。
以下是有关 GUI 和 CLI 命令的操作指南,可帮助您实现所需的功能: