目前Nginx服务器的upstream模块支持6种方式的分配:
负载均衡策略 | 名称 | 说明 |
轮询 | 默认方式 | 如果服务器down掉了,会自动剔除该服务器。 缺省配置就是轮询策略。 此策略适合服务器配置相当,无状态且短平快的服务使用。 |
weight | 权重方式 | 权重越高分配到需要处理的请求越多。 可以与least_conn和ip_hash结合使用。 比较适合服务器的硬件配置差别比较大的情况。 |
ip_hash | 依据ip分配方式 | 可以解决session不能跨服务器的问题。 在nginx版本1.3.1之前,不能在ip_hash中使用权重(weight)。 ip_hash不能与backup同时使用。 适合有状态服务,比如session。 当有服务器需要剔除,必须手动down掉。 |
least_conn | 最少连接方式 | 适合请求处理时间长短不一造成服务器过载的情况。 |
fair(第三方) | 响应时间方式 | 按照服务器端的响应时间来分配请求,响应时间短的优先分配。 |
url_hash(第三方) | 依据URL分配方式 | 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。 同一个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。而使用url_hash,可以使得同一个url(也就是同一个资源请求)会到达同一台服务器,一旦缓存住了资源,再此收到请求,就可以从缓存中读取。 |