首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx Round正在平衡每一个请求。

Nginx Round正在平衡每一个请求。
EN

Server Fault用户
提问于 2021-10-21 07:43:46
回答 2查看 622关注 0票数 3

我已经将nginx配置为在上游服务器之间执行基本的Round负载平衡。流量在上游服务器之间平均分配,我期望负载在每个请求之后得到均衡,但相反,它是每第二个请求(负载均衡器为第一个服务器提供第一个两个HTTP请求,接下来的两个HTTP请求到达第二个服务器等等)。我还尝试使用加权负载平衡,在上游服务器上使用偶数权重,并且行为保持不变。

负载均衡器配置:

代码语言:javascript
复制
######################  Upstream directive   ######################
upstream backend {
   server ecslb.bknd-srv-one.com:10000;
   server ecslb.bknd-srv-two.com:10000;
   server ecslb.bknd-srv-three.com:10000;
}

######################  Server directive   ######################
server {
   listen 10000;   
   server_name research-complex.com;
   location / {
   proxy_pass http://backend;
   }
}

负载均衡器配置由nginx.conf加载,默认情况下,只添加一个解析器。有什么想法吗?原因是什么?

EN

回答 2

Server Fault用户

发布于 2021-11-16 17:26:49

这可能会有帮助。看来你不是唯一有这个问题的人。

https://stackoverflow.com/questions/55257595/nginx-round-robin-load-balancing-is-not-as-expected

票数 0
EN

Server Fault用户

发布于 2022-11-14 23:20:18

不知道这是不是你的确切情况,但它可能会帮助到其他人来这里。

server指令的文档显示

解析为多个IP地址的域名一次定义多个服务器。http://nginx.org/en/docs/http/ngx_http_上游_module.html#server

因此,如果server中指定的地址被解析为多个IP地址,Nginx还将创建多个上游服务器并在它们之间保持平衡。然后,Nginx可能会将两个请求一行传递给同一个上游服务器,但实际上它是两个“不同”的上游服务器(具有不同的IP地址)。

在我的例子中,我使用localhost作为服务器地址,根据我的/etc/host文件,服务器地址解析为127.0.0.1::1 IP地址。例如:

代码语言:javascript
复制
# /etc/hosts
127.0.0.1   localhost
...

::1     localhost ip6-localhost ip6-loopback
...

然后,在这样的配置中:

代码语言:javascript
复制
upstream backend {
   server localhost:8001;
   server localhost:8002;
}

Nginx将在4台服务器( 127.0.0.1:8001[::1]:8001127.0.0.1:8002[::1]:8002 )之间取得平衡。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1081227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档