nginx 负载均衡器配置不起作用

nginx load balancer configuration not working

我有一个非常简单的负载平衡配置,为 PoC 目的设置它。我的应用服务器 1 和负载平衡器服务器是 same.Below 是我的负载平衡器 conf 文件内容。请帮我看看这是正确的吗?

目前,每当我的所有请求都转到 IP1 时。我希望它在我访问 IP1 时也将流量路由到 IP2,如果这种理解有误,请更正。

upstream myapp1 {
    server srv1.example.com;
    server srv2.example.com;
    server srv3.example.com;
            }

server {
    listen 80;

    location / {
        proxy_pass http://myapp1;
                }
}

您的配置是正确的。将多个请求发送到您的 NGINX 代理端口 80 将使用默认的 LB 算法循环将流量负载平衡到您的后端(上游)服务器之一。

看看这个: https://www.nginx.com/resources/wiki/start/topics/examples/loadbalanceexample/

http {
  upstream myproject {
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
    server 127.0.0.1:8082;
  }

  server {
    listen 80;
    server_name www.domain.com;
    location / {
      proxy_pass http://myproject;
    }
  }
}

您可以从任何 Linux 命令行尝试此操作

for ((i=1;i<=10;i++)); do curl -v "http://localhost"; sleep 1; done

这应该打印 AppServer1, AppServer2, AppServer3 并从 1 重新开始。

演示后端可能看起来像

server {
    listen 8080;
    location / {
      return 200 "AppServer1\n";
    }
  }

server {
    listen 8081;
    location / {
      return 200 "AppServer2\n";
    }
  }

server {
    listen 8082;
    location / {
      return 200 "AppServer3\n";
    }
  }

我刚刚在一个新的 nginx docker 容器中测试没有任何问题。