负载均衡策略
负载均衡算法 | 作用 |
---|---|
轮询 | 逐一轮询,默认方式 。如果服务器down掉了,会自动剔除该服务器。
|
weight | 加权轮询,weight越大,分配的几率越高。 适用业务场景:用于后端服务器硬件性处理能力不平均的情形 |
ip_hash | 按照访问IP的hash值进行分配,会导致来自同一IP的请求访问固定的一个后台服务器。 适合需要状态保持的服务,例如需要账号登录的系统,会话连接保持的业务。 |
url_hash | 按照访问URL的hash结果分配,适用于后端服务器为缓存服务器时比较有效 (需编译安装第三方模块 ngx_http_upstream_hash_module) |
least_conn | 按HTTP连接数来分配请求,连接数少的优先分配。 适合请求处理时间长短不一造成服务器过载的业务场景。 |
fair | 按后端服务器的响应时间来分配请求,响应时间短的优先分配。 适合对访问响应速度有一定要求的业务。 (需编译安装第三方模块 ngx_http_upstream_fair_module) |
ip_hash 的配置示例
ip_hash不能与backup同时使用
由于ip_hash技术主要根据客户端IP地址分配服务器,因此在整个系统中,Nginx服务器应该是处于最前端的服务器,这样才能获取到客户端的IP地址,否则它得到的IP地址将是位于它前面的服务器地址,从而就会产生问题
url_hash配置示例
按目标url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。
least_conn配置示例
有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果。
fair配置示例
特点:按后端服务器的响应时间来分配请求,响应时间短的优先分配。
适用业务场景:对访问响应速度有一定要求的业务
Last updated