我已经将nginx配置为在上游服务器之间执行基本的Round负载平衡。流量在上游服务器之间平均分配,我期望负载在每个请求之后得到均衡,但相反,它是每第二个请求(负载均衡器为第一个服务器提供第一个两个HTTP请求,接下来的两个HTTP请求到达第二个服务器等等)。我还尝试使用加权负载平衡,在上游服务器上使用偶数权重,并且行为保持不变。
负载均衡器配置:
###################### 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加载,默认情况下,只添加一个解析器。有什么想法吗?原因是什么?
发布于 2021-11-16 17:26:49
发布于 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地址。例如:
# /etc/hosts
127.0.0.1 localhost
...
::1 localhost ip6-localhost ip6-loopback
...然后,在这样的配置中:
upstream backend {
server localhost:8001;
server localhost:8002;
}Nginx将在4台服务器( 127.0.0.1:8001、[::1]:8001、127.0.0.1:8002和[::1]:8002 )之间取得平衡。
https://serverfault.com/questions/1081227
复制相似问题