我想了解 LVS 持久性。对我来说,所有具有相同地址 ip 的客户端都将转到同一台服务器,直到超时结束。如果客户端位于提供商/代理/防火墙或公共地址后面,它们都会转到同一台真实服务器,但就性能而言不是很好。
我想举一个例子来尝试理解:大学只有一个IP并使用NAT,所以如果所有的学生都想连接到网页,他们都会去同一个真实服务器?
在此链接上http://www.ntua.gr/lvsp/Joseph.Mack/HOWTO/LVS-HOWTO.fwmark.html 8.10.2 部分示例中,2 个客户端(不同 IP 但来自同一个路由器/防火墙)会选择不同的服务器,这是正确的。我给出的示例是否正确?
答案1
如果您的所有客户端都来自单个源 IP 地址,并且您正在使用持久性,那么他们都会选择一个 realserver。
解决负载问题的一个可能方法是,在 DNS 中为负载平衡站点通告两个不同的 A 记录。您可以结合使用 FWMARK(如上文所述),强制流量中的较大源 IP 地址选择 realserver 1 作为第一个 A 记录,选择 realserver 2 作为第二个 A 记录。
答案2
对我来说,所有具有相同地址ip的客户端都会转到同一个服务器,直到超时结束。
真的。
但是如果客户端位于提供商/代理/防火墙或公共地址后面会发生什么?
LVS 关心 IP,不会尝试查看用户是否有代理。因此,LVS 将看到代理的 IP。
它们都去往同一个真实服务器吗?
是的。
如果是的话,那么在这种情况下负载平衡并不是很有用,那么如何正确处理会话呢?
对于 http 来说很简单,你可以将 apache mod proxy balancer 与 HA 一起使用。对于其他协议,你应该在互联网上搜索