Nginx 没有轮询 nginx轮询策略_Nginx 没有轮询

Nginx负载均衡的算法策略

1.Round Robin 轮询的策略
 # 每个请求按时间顺序逐一分配到不同的后端服务器。
 # 它是upstream模块默认的负载均衡默认策略。
 # 在轮询中,如果服务器down掉了,会自动剔除该服务器。
 # 缺省配置就是轮询策略。
 # server list
 upstream Servers{
	 server localhost:8081;
	 server localhost:8082;
 }
 
2.Least Connections
 # 把请求转发给连接数较少的后端服务器。
 # 轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同.
 # 但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果。 
 # server list
 upstream Servers{
	 least_conn;
	 server localhost:8081;
	 server localhost:8082;
 }
 
3.IP Hash
 # 指定负载均衡器按照基于客户端IP的分配方式,这个方法确保了相同的客户端的请求一直发送到相同的服务器,以保证session会话。
 # 这样每个访客都固定访问一个后端服务器,可以解决session不能跨服务器的问题。
 # 此策略适合有状态服务,比如session。
 # 当有服务器需要剔除,必须手动down掉。
 # server list
 upstream Servers{
	 ip_hash;
	 server localhost:8081;
	 server localhost:8082;
 }
 # 当有服务器需要剔除,必须手动down掉。
 # 将 8082 标记为down
 # server list
 upstream Servers{
	 ip_hash;
	 server localhost:8081;
	 server localhost:8082 down;
 }

4.Url_Hash
 # server list
 # 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。
 # 同一个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。
 # 而使用url_hash,可以使得同一个url(也就是同一个资源请求)会到达同一台服务器,一旦缓存住了资源,再此收到请求,就可以从缓存中读取。
 upstream Servers {
 	 # 实现每个url定向到同一个后端服务器	
	 hash $request_uri consistent;
	 server localhost:8081;
	 server localhost:8082;
 }
 
5.智能的fail策略,nginx不支持,需要下载集成第三方的插件。
 # fair 采用的不是固定的轮询算法进行负载均衡,而是智能的根据页面大小、加载时间长短进行负载计算
 upstream dynamic_zuoyu {
 	 fair; #实现响应时间短的优先分配
	 server localhost:8080; 
	 server localhost:8081; 
	 server localhost:8082; 
	 server localhost:8083; 
}


6.服务权重
 # 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
 # 权重越大,访问次数越多
 # server list
 upstream Servers{
	 server localhost:8081 weight=1;
	 server localhost:8082 weight=7;
 }