我怎么知道我已经负载均衡的服务器?

我想testing一些configuration更改,以便在位于负载平衡器后面的两台服务器之间进行单向同步(这是所有Rackspace云基础架构的FYI)。 我遇到的问题是,我无法确定哪台服务器的负载均衡,因为我给出的IP始终是负载均衡器的IP。

有没有一个简单的(甚至不是很简单)的方式来告诉我实际上被引导到哪个服务器。 理想情况下,我喜欢浏览器中的某些内容,因为这意味着非技术团队成员也可以相对轻松地报告问题,但是有关最佳方法的任何想法都将得到赞赏。

其他信息:两台服务器都运行Apache,负载均衡器configuration了会话持久性。

如果你想谨慎的话,只需让服务器在Server:响应头( RFC 2616 Sec 14.38 )中标识自己。 例如,在Apache中,返回的信息由ServerTokens指令控制。 然后,这只是检查Firebug , Chrome DevTools或Safari Web Inspector时间线中的响应标头的问题。

如果你想明显地看到,你可以让你的web应用程序把它作为可见文本生成的页面中embedded服务器名称。 您也可以在HTML注释中报告服务器名称,这需要查看源代码才能看到。

你没有说明你正在使用哪个协议,所以我假设我们正在谈论https。

每个后端可能知道一些关于自己的信息,这些信息将唯一标识后端。 这可能是主机名或单播IP地址。 后端可以在适当的位置包含这些信息。 您可以将其包含在每个页面的页脚中。 或者,如果您认为该内容太明显,则只能将其包含在用户在正常情况下不会访问的网页上。 任何错误页面(404,500等)都应该包含后端标识。

如果您的负载平衡器只是负载平衡而不做任何其他事情,那么您将在后端终止https,并且每当TCP连接closures并且客户端重新连接时,客户端就有可能被定向到不同的后端。

负载平衡器可以记住在最近一小时内看到的所有客户端IP地址的最近使用的后端,以便大部分时间重用相同的后端。 任何更详细的信息,例如cookie和用户id,对于负载均衡器来说都是遥不可及的,所以它不能使用它来保持用户在同一个后端。

这意味着用户使用哪个后端的任何标识都应该以一粒盐来进行,因为用户可能在他们遇到问题的时间和他们所使用的后端之间的后端之间移动。 但它仍然是有价值的信息,因为在大多数情况下,它将有助于更快速地find相关日志。