微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Nginx Round Robin 负载均衡上游服务器不按顺序排列,chrome、firefox、IE 浏览器之间的行为变化

如何解决Nginx Round Robin 负载均衡上游服务器不按顺序排列,chrome、firefox、IE 浏览器之间的行为变化

在虚拟机(ubuntu 服务器)中配置 Nginx 服务器并打开 80 端口到 windows 主机, 使用基本节点应用程序对 5 台 Ubuntu 服务器执行相同操作,分别使用 5 台服务器打印 1、2、3、4、5。 配置Nginx.conf文件

events{
}

http{
        upstream serverslist {
#               Server 8001
                server 192.168.100.2:3000;
#               Server 8002
                server 192.168.100.3:3000;
#               Server 8003
                server 192.168.100.4:3000;
#               Server 8004
                server 192.168.100.5:3000;
#               Server 8005
                server 192.168.100.6:3000;
        }
        server {
                location / {
                        proxy_pass      "http://serverslist/";
                }
        }
}

分别从 Nginx 服务器 Ping 和 Curl 到这些服务器工作完美并返回预期结果。 即在每个 curl localhost 给出 1,2,3,4,5,1,5。按这个顺序。这是预期的。

但是当我在 Chrome 浏览器中加载 Nginx 服务器时,我得到了输出 1,4。
当我在 Firefox 中加载 Nginx 服务器时,我得到输出 1、2、3、4、5。(正确)
当我在 android 上的duckduckgo 浏览器中加载 Nginx IP 时,它给出 5,1.

我尝试添加许多基于代理的标头和来自网络的纯标头,找不到任何解决方案在所有浏览器中获得相同的输出,即 1,5. On 每次重新加载同一服务器。

任何帮助都会很棒。

解决方法

编辑 3:发现了一个有趣的问题。 在 chrome 中,每次我访问我的网站时,它都会进行两次调用,无论它们被调用到我的网站/我的网站和我的网站的 /favicon.ico。 我没有 /favicon.ico。 我认为正在发生的事情

  1. 当 Nginx 收到对我网站的请求时,它正在加载上游的第一台服务器。
  2. 当 chrome 从我的网站加载 / 时,它还会调用我网站的 /favicon.ico,这会导致对 Nginx 进行新调用,以便它从上游的下一个服务器加载 .ico 文件。
  3. 发生这种情况是为了使服务器 1,2,3 按顺序 1(来自 2 的 ico 文件)、3(来自 1 的 ico 文件)、2(来自 3 的 ico 文件)加载。并循环重复。

一旦我停止在 Nginx 中加载 /favicon.ico,我的三个上游服务器 1、2、3 将按循环的 1、2、3 顺序加载。

我把它放在带有上游的服务器中,以禁止从 Nginx 加载 favicon.ico。

location = /favicon.ico {
  log_not_found off;
}

希望遇到此问题的任何人都觉得这有用。

编辑 2:找出问题,负载平衡对 Nginx conf 文件中的静态文件和静态服务器工作正常。 但是我的应用程序是由节点加载的,所以必须在启动所有节点服务器后启动 Nginx。 当我在 Nginx 运行时重新启动应用程序服务器时,问题再次出现。 现在没有问题会很快更新

编辑 1:这对我不再适用,昨天有效,今天继续使用相同的配置,问题再次出现。

我的设置也有同样的问题。 经过大量代理设置、VirtualBox 设置和网络编辑后,什么对我有用。

在 HTTP 块中添加一个额外的服务器块。

server{
}

并重新加载 Nginx 服务。

它对我有用,在 chrome 和 firefox 按给定顺序加载服务器后重新加载后,我删除了服务器块,但它仍在工作。

首先不知道为什么会提出这个问题。 希望这有助于解决您的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。