在配置具有多个服务器条目的NGINX时,可以配置循环算法来分配负载。 NGINX提供重量来指示重量的分配方式。例如:
upstream backend {
server backend1.example.com weight=5;
server backend2.example.com:8080 weight=1;
}
server {
location / {
proxy_pass http://backend;
}
}
问题是:可分配给体重的最大值是多少?
我的问题是我遇到了一个包含2个服务器条目的配置,其中一个的权重值为2000000000(20亿),另一个的值为1.目的是将所有流量定向到第一个服务器上作为临时第二个是失败的。但是,在远低于2 bil的请求之后,用户会收到错误,因为它们被定向到第二台服务器。
答案 0 :(得分:1)
您应该使用健康检查来确定该用法,而不是重量。
您有两个选择:
使用内置的nginx第3层健康检查:
Using max_fails
,fail_timeout
甚至backup
指令。
backup
:将服务器标记为备份服务器。当主服务器不可用时,它将被传递请求。
此模块启用第7层运行状况检查,这是推荐的方法。