首页 > 解决方案 > 使用 Firefox 时,负载平衡会忽略我一半的节点数

问题描述

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

在这两种情况下,当我尝试对偶数个容器或液滴进行负载平衡时,它都会忽略一半。例如:

我从我在 Digital Ocean 上的设置中制作了一个屏幕截图视频,您可以查看该视频以查看行为: https ://youtu.be/EP_eOtuPGLs

如您所见,当我有 2 个液滴时,它只向 1 发送流量。当我添加第三个液滴时,它向 3 发送流量。请注意,我在 Traefik 中也看到了相同的行为,因此它可能不是特定于任何一个技术,但只是我在一般负载平衡中缺少的东西。

标签: networkingload-balancingdigital-oceandevopstraefik

解决方案


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

在比较了 Firefox 和 Chrome 中的请求后,我意识到 Firefox 总是发送一个额外的 HTTP 请求来获取一个网站图标——无论 HTML 是否定义了一个。

这意味着每次我在 Firefox 中访问负载均衡器时,它实际上都发送了 2 个请求。因此,Web 请求转到了 Droplet A,而 Favicon 请求转到了 Droplet B。当我刷新页面时,由于负载均衡,Web 请求再次转到了 Droplet A。所以我从来没有看到来自 Droplet B 的任何响应。

总而言之,负载均衡器从来没有出现过问题。只是我使用 Firefox 的测试方法有缺陷。


推荐阅读