负载平衡IIS服务器总是粘滞60秒

我有一个负载平衡器设置,其中有两个服务器场,一个在Linux上有3个Apache服务器,另一个有2个IIS服务器。 我在负载均衡器上configuration了两个相同的虚拟服务,一个指向每个服务器场,并设置为循环均衡,没有持久性。 Apache服务器正常工作,但IIS服务器将会话保留60秒,然后将下一个请求发送到下一个服务器。

为了演示这个,我简单地创build了一个显示服务器名称的HTML页面。 当我到达负载均衡器提供的虚拟地址时,当我按下Apache服务器上的刷新时,我会看到服务器1,2,3,1,2,3等。 但是,当我按下刷新去虚拟地址指向IIS服务器时,我仍然在同一台服务器上。 如果我等待60秒,然后刷新我指向其他IIS服务器。

目前我使用的负载均衡器来自Kemp Technologies。 但是,在设置Kemp之前,我使用HAproxy时看到了完全相同的行为。 因此,这似乎是后端服务器上的Windows问题,而不是负载平衡器。 但是,我不太明白这是如何可能的,因为它应该是负载平衡器决定哪个后端服务器将服务请求。

有没有其他人看过这种types的行为? 有什么我可以修改,让我的Windows服务器在一个真正的循环赛时尚平衡?

编辑 –

IIS系统上的testing页面运行一个服务器端ASP脚本,用一个简单的ASP脚本<%= now()%>插入当前date/时间。 这使我可以看到页面没有被caching,并在每个请求上被dynamic地重新生成。 这些页面还包含IIS主机名,以便我可以告诉哪个IIS服务器实际上生成了呈现的页面。

是的,你的直觉是正确的 – 这实际上不可能导致这个问题,因为这些设备无法控制请求路由的位置。

你确定你的浏览器不是简单地caching页面,下一个请求正确地转到另一个服务器并得到一个304 (未修改)响应?

换句话说,您是否在使用浏览器显示以外的方法来validation请求的去向?

比较networking追踪是certificate/反驳这一点的最好方法,并为此产生理论。

最简单的想法:IIS可能启用保持活动并且Apache不启动(或者每次都closures连接,无论机制如何)…