Networking 使用Firefox时,负载平衡会忽略一半的节点数

Networking 使用Firefox时,负载平衡会忽略一半的节点数,networking,load-balancing,digital-ocean,devops,traefik,Networking,Load Balancing,Digital Ocean,Devops,Traefik,我尝试了两种不同的负载平衡设置,无论我使用哪种技术,我都看到了相同的结果,所以我肯定缺少一些东西 数字海洋负载均衡器 Traefik负载平衡器到容器 在这两种情况下,当我尝试将负载平衡加载到偶数个容器或液滴时,它忽略了一半。例如: 1节点,负载平衡将流量发送到1。 2个节点,负载平衡将流量发送到1。 3个节点,负载平衡将流量发送到3个节点。 4个节点,负载平衡将流量发送到2。 我在Digital Ocean上做了一个屏幕捕获视频,您可以查看该视频以查看其行为: 正如你所看到的,当我有2个水滴时

我尝试了两种不同的负载平衡设置,无论我使用哪种技术,我都看到了相同的结果,所以我肯定缺少一些东西

数字海洋负载均衡器

Traefik负载平衡器到容器

在这两种情况下,当我尝试将负载平衡加载到偶数个容器或液滴时,它忽略了一半。例如:

1节点,负载平衡将流量发送到1。 2个节点,负载平衡将流量发送到1。 3个节点,负载平衡将流量发送到3个节点。 4个节点,负载平衡将流量发送到2。 我在Digital Ocean上做了一个屏幕捕获视频,您可以查看该视频以查看其行为:


正如你所看到的,当我有2个水滴时,它只向1发送流量。当我添加第三滴时,它会将流量发送到3。请注意,我在Traefik中也看到了相同的行为,因此这可能不是特定于这两种技术,而只是我在负载平衡方面缺少的东西。

经过大量测试后,我注意到问题仅限于使用Firefox。当执行CURL或Chrome请求时,它返回了正确的响应

在比较了Firefox和Chrome中的请求之后,我意识到Firefox总是发送一个额外的HTTP请求来获取favicon,不管HTML是否定义了favicon

这意味着每次我访问Firefox中的负载平衡器时,它实际上都会发送2个请求。因此,web请求转到DropletA,Favicon请求转到DropletB。当我刷新页面时,由于负载平衡,web请求再次转到DropletA。因此,我始终无法看到DropletB的任何响应


总之,负载平衡器从来就没有问题。这只是我使用Firefox的测试方法有缺陷。

在重新加载时,hello from似乎会发生变化,这意味着负载平衡实际上正在工作,假设您显示的是服务器签名以及hello from。您可以共享DO负载平衡器的配置吗?不是成员,而是平衡配置。。。这似乎很奇怪,当使用两个液滴时,如你所见,如果只粘在一个液滴上。当2个节点启动时,它不会更改。但当我添加第三个节点时,它会这样做。这是我的问题。与3配合很好,与2完全不配合。是的,在前面的评论中输入过早。。。补充说,当你在打字时使用两个液滴时,如果只粘在一个液滴上,这似乎很奇怪:是的,正如我在帖子中所写。当我加4时,它在2之间保持平衡。看起来偶数忽略了一半,这真是不可思议。。。我目前在DO中的设置在标准负载平衡器后面使用了2个液滴,它的工作原理与刚刚检查的预期一样,呵呵。。。我们能看到LB配置吗?