01、Nginx负债均衡策略
作为web中间件,最大的作用就是对请求进行分发,当然这只是nginx的一种作用。nginx常见的负载均衡策略有6种,分别为:轮询、指定权重,ip_hash、least_conn、fair、url_hash。默认为轮询,fair和url_hash属于第三方策略。
1、轮询策略:是nginx的负载均衡策略通过upstream来实现请求转发,轮询配置的权重都是一样的,会按照顺序转发,若有一台服务器挂掉,nginx会自动将这台服务从upstram 中剔除,配置轮询策略时,有fail_timeout 、max_fails、down 三个辅助参数,fail_timeout :表示指定时间类,某个服务器允许重试的最大次数,通常和max_fails参数结合使用。max_fails:表示在fail_timeout时间内,连接最大的失败次数,超过这个次数,nginx就断定该台服务器挂掉。
2、指定权重:是通过在upstream配置相应的服务器指定weight权重参数来实现按照权重分发请求。weight参数值的大小和请求转发比率成正比。
举例:
upstream applicationServer {
server 192.168.100.129 weight=8;
server 192.168.100.130 weight=12:
}
3、ip_hash:每个请求根据原始访问的ip的hash结果来进行请求转发,即同一个IP,后续的请求都落在后端同一台服务上。通常能解决,session复制和同步的问题,因为这个ip请求都落在这一台服务器上,就不会用session不同步的问题,但是带来一个问题就是负载不均衡。
配置举例:
upstream applicationServer {
ip_hash;
server 192.168.100.129 weight=8;
server 192.168.100.130 weight=12:
}
4、least_conn:通过在upstream配置中增加least_conn配置,nginx在接收到请求后,把请求转发给后端连接较少的服务器。
upstream applicationServer {
least_conn;
server 192.168.100.129 weight=8;
server 192.168.100.130 weight=12:
}
余下两种属于第三方策略,暂时不做表述。