当使用多个服务器条目配置 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。目的是将所有流量定向到第一台服务器,作为临时第二个倒下了。然而,在远少于 20 亿次请求后,用户收到错误,因为他们被定向到第二台服务器。
最佳答案
您应该针对该用法使用健康检查,而不是重量。
你有两个选择:
使用内置的 nginx 第 3 层健康检查:
使用 max_fails
、fail_timeout
甚至backup
指令。backup
:将服务器标记为备份服务器。当主服务器不可用时,它将传递请求。使用像 nginx_upstream_check_module 这样的社区模块
此模块启用第 7 层健康检查,这是推荐的方式。
关于nginx - 我可以在 NGINX 上游服务器配置中为权重设置的最大值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42558281/