码迷,mamicode.com
首页 > 其他好文 > 详细

Nginx 负载均衡方案

时间:2020-03-14 16:49:52      阅读:51      评论:0      收藏:0      [点我收藏+]

标签:组合   次数   解决   设置   配置文件   col   第一个   算法   不同   

  

  • 轮询  

根据Nginx配置文件中的顺序,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

upstream web { 
    server server1; 
    server server2; 
} 

 

  • 最少连接

Web 请求会被转发到连接数最少的服务器上。least_conn 算法很简单,首选遍历后端集群,比较每个后端的 conns/weight,选取该值最小的后端。如果有多个后端的 conns/weight 值同为最小的,那么对它们采用加权轮询算法。

 upstream web { 
     least_conn; 
     server server1; 
     server server2; 
 } 

 

  • IP地址哈希

同一客户端连续的 Web 请求可能会被分发到不同的后端服务器进行处理,因此如果涉及到会话 Session,可以使用基于 IP 地址哈希的负载均衡方案。这样的话,同一客户端连续的 Web 请求都会被分发到同一服务器进行处理(每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题)。

upstream web { 
    ip_hash;
    server server1; 
    server server2; 
} 

 

  • 权重 (Weighted Load Balancing)

可以根据服务器的性能状况有选择的分发 web 请求。指定轮询几率,weight 越高、访问比率越大。weight=2,意味着每接收到3个请求,前2个请求会被分发到第一个服务器,第3个请求会分发到第二个服务器,其它的配置同轮询配置。

基于权重的负载均衡和基于 IP 地址哈希的负载均衡可以组合在一起使用。

upstream web { 
    server server1 weight=2; 
    server server2; 
} 

 

  • fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream web {
    server server1;
    server server2;
    fair;
}

 

  • url_hash(第三方)

按访问 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 提供非业务功能。

 

Nginx 负载均衡方案

标签:组合   次数   解决   设置   配置文件   col   第一个   算法   不同   

原文地址:https://www.cnblogs.com/starfish29/p/12492500.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!