1. 轮询
upstream backserver { server 192.168.0.14; server 192.168.0.15; }
此方式默认,将各请求按时间顺序逐一打到不同的后端服务器,如果某台服务器down了,会被自动剔除。
2. 权重
upstream backserver { server 192.168.0.14 weight=3; server 192.168.0.15 weight=7; }
此方式为在轮训的基础指定了几率,通常按服务器性能做配比,性能越好的,权重越大。
3. ip-hash
upstream backserver { ip_hash; server 192.168.0.14:88; server 192.168.0.15:80; }
此方式是指,用户访问过某服务器后,下次再请求时,会通过hash算法,将请求打到上次访问的机器上。
4. fair (第三方)
upstream backserver { server server1; server server2; fair; }
这是按后端服务器的响应时间来分配请求,响应最快的优先分配。
5. url-hash(第三方)
upstream backserver { server squid1:3128; server squid2:3128; hash $request_uri; hash_method crc32; }
url-hash,是指按照url的hash结果分配请求,使相同的url打到相同的服务器,利于后端服务器做缓存。
负载均衡一些配置参数如下:
1. down 代表该服务器暂时不参与负载。
2.weight 权重。
3.max_fails 允许请求失败的次数,超过之后,返回proxy_next_upstream模块定义的错误。
4.fail_timeout: 最大失败次数后,暂停的时间。