我们有一个networking应用程序运行在一个web服务器的云。 在晚上,Web应用程序主要来自我们的本地办公室,它使用NAT将多台机器连接到互联网。 请求web应用程序从客户端PC通过NAT,通过互联网,通过负载均衡器,然后到达云中的节点。 负载均衡器使用源IP持久性。 下面简单说明是我们的情况。
云< – >负载均衡器< – > INTERNET < – > NAT < – > 20个客户端
由于LB使用源IP持久性,来自所有客户端的所有Web请求都会击中云中的同一个节点。 这当然是由于NAT,它确保每个TCP / IP数据包都包含相同的源IP。
因为所有的请求都会碰到云中的同一个节点,所以节点通常会产生一个503错误: http : //www.checkupdown.com/status/E503.html ,因为节点被连接超载。
这个问题最好的解决scheme是什么? 请注意,我们无法控制云中的负载均衡器和节点。 我们只有shell权限才能上传我们的Web应用程序的文件。
选项4是“最简单的”,因为它意味着(1)没有新的服务器和(2)networking上没有IP重新configuration。
DNS可以工作(你正在谈论DNS循环,对吗?),但可能比基于cookie的负载平衡更多的工作。 我会和你的主持人谈一谈。
另一种方法是在您的防火墙上设置多NAT,以便您的内部客户端分布在几个外部IP上。 从概念上讲,您可以将其视为反向负载平衡器。
但是,您的客户号码是否准确? 20客户端超载您的networking应用程序 也许你应该解决你的应用程序无法处理那么多客户端的问题。 不知道你的应用程序的任何东西,20似乎相当低。 但是我可能是错的。 🙂
第三个select:你的应用程序需要粘性吗? 如果您的客户端可以毫无问题地从Web服务器跳转到Web服务器,那么忘记每个IP负载平衡,并按照每个连接循环或每个连接进行最less的连接。