负载均衡策略
轮询
逐一轮询,默认方式 。如果服务器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
Was this helpful?