nginx load balancer configuration not working

pvabu6sv  于 2023-10-17  发布在  Nginx
关注(0)|答案(1)|浏览(114)

我有一个非常简单的负载平衡配置,设置它的目的是为了更好地使用它。我的应用服务器1和负载均衡器服务器是相同的。下面是我的负载均衡器配置文件内容。请帮助我,这是正确的吗?
目前,每当我的所有请求都转到IP1时。我希望它路由流量到IP2以及每当我击中IP1,请纠正,如果这种理解是错误的。

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

server {
    listen 80;

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

sq1bmfud1#

您的配置正确。向NGINX代理端口80发送多个请求将使用默认的LB-Algorithem循环将流量负载平衡到您的后端(上游)服务器之一。
看看这个: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;
    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容器中进行了测试,没有任何问题。

相关问题