谈谈Nginx负载均衡中的6种均衡策略

很多团队会在生产环境中引入Nginx来做负载均衡 , 下面给大家简要说说Nginx负载均衡中的6种不同策略 。
轮询轮询是默认策略 , 每个请求按时间顺序逐一分配到不同节点 , 后端各个节点平均处理请求 。

谈谈Nginx负载均衡中的6种均衡策略

文章插图
平均轮询
加权轮询根据节点的权重进行轮询 , 权重越高分配到的请求越多 。适用于服务器性能差别比较大的情况 , 比如硬件配置差别较大 , 或者新老服务器混用的时候 。
谈谈Nginx负载均衡中的6种均衡策略

文章插图
加权轮询 , 权重高 , 分配多
least_conn按节点的连接数来分配 , 把请求优先分配给连接数少的节点 。该策略主要为了解决 , 各个节点请求处理时间长短不一造成某些节点超负荷的情况 。
fair按节点的响应时间长短来分配 , 把请求优先分配给响应时间短的节点 。该策略可用于节点性能不均衡的情况 , 也可以防止某个节点突发性能问题还继续接收同样多的请求 , 从而造成雪崩的情况 。
ip_hash按客户端来源IP的hash结果分配 。这样相同客户端的请求会被分配到同一个节点上 , 主要是为了解决session问题 。比如 , 某个用户的登录操作 , 登录的请求被分配到节点1 , 对用户来说他已经登录成功了 。有可能下一刻 , 该用户某个需要权限才能访问的请求被分配到节点2了 。但是对节点2来说该用户是没有登录的 , 会提示用户没登录 。
谈谈Nginx负载均衡中的6种均衡策略

文章插图
按客户端ip的hash结果分发
url_hash按访问URL的hash结果分配 。这样相同的url会被分配到同一个节点 , 主要为了提高缓存命中率 。比如 , 为了提高访问性能 , 服务端有大量数据或者资源文件需要被缓存 。使用这种策略 , 可以节省缓存空间 , 提高缓存命中率 。
谈谈Nginx负载均衡中的6种均衡策略

文章插图
【谈谈Nginx负载均衡中的6种均衡策略】按url的hash结果分发




    推荐阅读