我想暂时不将流量路由到 nginx 上游的主机。与其将其注释掉,因为这意味着 nginx 完全无法通过编程感知到它,我还想知道将其权重设置为零是否会产生相同的效果(不将流量路由到主机)。从此处的文档中看不出这一点http://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream
nginx 会尊重吗weight=0
?
答案1
从(相当粗略的)阅读来看,ngx_http_upstream_get_peer
如果没有其他服务器可供选择,nginx 似乎会选择权重=0 的服务器。
答案2
我尝试nginx
使用配置了 weight=0 的上游重新加载,但没有成功。
Nginx 说:
nginx: [emerg] invalid parameter "weight=0" in /etc/nginx/sites-enabled/upstream
nginx: configuration file /etc/nginx/nginx.conf test failed
答案3
正如 Alexey Ten 在评论中所说,您可以使用该down
标志,例如:
upstream backend {
ip_hash;
server backend1.example.com;
server backend2.example.com;
server backend3.example.com down;
server backend4.example.com;
}
https://nginx.org/en/docs/http/ngx_http_upstream_module.html#ip_hash