标签:组合 次数 解决 设置 配置文件 col 第一个 算法 不同
根据Nginx配置文件中的顺序,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
upstream web {
server server1;
server server2;
}
最少连接
Web 请求会被转发到连接数最少的服务器上。least_conn 算法很简单,首选遍历后端集群,比较每个后端的 conns/weight,选取该值最小的后端。如果有多个后端的 conns/weight 值同为最小的,那么对它们采用加权轮询算法。
upstream web {
least_conn;
server server1;
server server2;
}
同一客户端连续的 Web 请求可能会被分发到不同的后端服务器进行处理,因此如果涉及到会话 Session,可以使用基于 IP 地址哈希的负载均衡方案。这样的话,同一客户端连续的 Web 请求都会被分发到同一服务器进行处理(每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题)。
upstream web {
ip_hash;
server server1;
server server2;
}
可以根据服务器的性能状况有选择的分发 web 请求。指定轮询几率,weight 越高、访问比率越大。weight=2,意味着每接收到3个请求,前2个请求会被分发到第一个服务器,第3个请求会分发到第二个服务器,其它的配置同轮询配置。
基于权重的负载均衡和基于 IP 地址哈希的负载均衡可以组合在一起使用。
upstream web { server server1 weight=2; server server2; }
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream web {
server server1;
server server2;
fair;
}
按访问 url 的 hash 结果来分配请求,使每个 url 定向到同一个后端服务器,后端服务器为缓存时比较有效。 hash_method 是使用的 hash 算法
upstream web { server server1:3128; server server1:3128; hash $request_uri; hash_method crc32; }
每个设备的状态设置为:
1.down 表示单前的 server 暂时不参与负载
2.weight 默认为1.weight 越大,负载的权重就越大。
3.max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回 proxy_next_upstream 模块定义的错误
4.fail_timeout:max_fails 次失败后,暂停的时间。
5.backup: 其它所有的非 backup 机器 down 或者忙的时候,请求 backup 机器。所以这台机器压力会最轻。sorry server 提供非业务功能。
标签:组合 次数 解决 设置 配置文件 col 第一个 算法 不同
原文地址:https://www.cnblogs.com/starfish29/p/12492500.html