nginx的负载均衡策略有4种:

轮询(默认)

最基本的配置方法,它是upstream的默认策略,每个请求会按时间顺序逐一分配到不同的后端服务器。

参数有:

项目 Value
fail_timeout 与max_fails结合使用
max_fails 设置在fail_timeout参数设置的时间内最大失败次数,如果在这个时间内,所有针对该服务器的请求都失败了,那么认为该服务器会被认为是停机了
fail_time 服务器会被认为停机的时间长度,默认为10s。
backup 标记该服务器为备用服务器。当主服务器停止时,请求会被发送到它这里。
down 标记服务器永久停机了。
http { #ip_hash动态服务器组upstream userserviceurl {ip_hash;server localhost:8092 weight=2;#server localhost:8094 max_fails=3 fail_timeout=20s;server localhost:8094;#server localhost:8096 backup; ip_hash策略时不支持用backup server localhost:8095 down;}server { listen       80;server_name  localhost;  location / {root   html;index  index.html index.htm;}location /pms/ {proxy_pass http://userserviceurl;}  error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
}

注意:

在轮询中,如果服务器down掉了,会自动剔除该服务器。 缺省配置就是轮询策略。 此策略适合服务器配置相当,无状态且短平快的服务使用。 权重

在轮询策略的基础上制定沦陷的几率。例如

upstream foo {server localhost:8001 weight=2;server localhost:8002;server localhost:8003 backup;server localhost:8004 max_fails=3 fail_timeout=20s;
}

这里例子中,weight参数用于制定轮询的几率,weight默认值为1;weight的数值和被访问的几率成正比。

注意

权重越高分配到需要处理的请求越多。 此策略可以与least_conn和ip_hash结合使用。
此策略比较适合服务器的硬件配置差别比较大的情况。

ip_hash

负载均衡器按照客户端IP地址的分配方式,可以确保相同客户端的请求一直发送到相同的服务器。这样每个访客都固定访问一个后端服务器。

upstream foo {ip_hash;server localhost:8001 weight=2;server localhost:8002;server localhost:8003 down;server localhost:8004 max_fails=3 fail_timeout=20s;
}

注意

在nginx版本1.3.1之前,不能在ip_hash中使用权重(weight)。 ip_hash不能与backup同时使用。
此策略适合有状态服务,比如session。 当有服务器需要剔除,必须手动down掉。

least_conn 最小连接

把请求转发给连接数较少的后端服务器。轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果

upstream foo {least_conn;server localhost:8001 weight=2;server localhost:8002;server localhost:8003 backup;server localhost:8004 max_fails=3 fail_timeout=20s;
}

注意

此负载均衡策略适合请求处理时间长短不一造成服务器过载的情况。 除了上面这些调度策略之后,还有一些第三方的调度策略可以集成到nginx中。

在实际运用中,需要根据不同的场景选择不同的策略,大多是多种策略结合使用以达到实际需求的性能。

nginx负载均衡策略相关推荐

  1. 1,Nginx负载均衡策略upstream,六种策略

    upstream提供负载均衡功能,支持6种负载分配方式,默认是轮询分配方式 负载均衡作用 转发功能 故障转移 恢复添加 工作流程 分析客户端请求,构建调用服务器 调用ngx_http_upstream ...

  2. Nginx负载均衡策略介绍

    负载均衡策略 介绍完Nginx负载均衡的相关指令后,我们已经能实现将用户的请求分发到不同的服务器上,那么除了采用默认的分配方式以外,我们还能采用什么样的负载算法? Nginx的upstream支持如下 ...

  3. Nginx负载均衡策略之fair介绍

    fair fair采用的不是内建负载均衡使用的轮换的均衡算法,而是可以根据页面大小.加载时间长短智能的进行负载均衡.那么如何使用第三方模块的fair负载均衡策略. upstream backend{f ...

  4. Nginx 负载均衡策略之加权轮询分析

    为什么80%的码农都做不了架构师?>>>    nginx 作为方向代理服务,能作为后端服务器提供负载均衡功能,其中加权轮询策略是默认使用的负载均衡策略. 直观上就是将来自客户的请求 ...

  5. Nginx负载均衡策略 - least_conn 最少连接

    配置 $ vim $NGINX_HOME/conf/nginx.conf worker_processes auto; events {use epoll;worker_connections 655 ...

  6. nginx 负载均衡策略

    Nginx的upstream支持如下六种方式的分配算法,分别是: 算法名称 说明 轮询 默认方式 weight 权重方式 ip_hash 依据ip分配方式 least_conn 依据最少连接方式 ur ...

  7. DNS负载均衡与NGINX负载均衡策略

    负载均衡是指的是把请求均匀的分摊到多个服务器上处理.一般常见的负载均衡有两种:①客户端与反向代理服务器之间的DNS负载均衡②反向代理服务器与应用服务器之间的负载均衡(这种负载均衡有很多,可以是webl ...

  8. Nginx负载均衡策略之least_conn

    least_conn 最少连接,把请求转发给连接数较少的后端服务器.轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同:但是,有些请求占用的时间很长,会导致其所在的后端负载较高.这种情况下,l ...

  9. Nginx负载均衡策略之轮询与加权轮询

    轮询 是upstream模块负载均衡默认的策略.每个请求会按时间顺序逐个分配到不同的后端服务器.轮询不需要额外的配置. upstream backend{server 192.168.200.146: ...

最新文章

  1. Eclipse 输出的文本乱码
  2. python中调用多进程加速处理文件
  3. Web系统开发构架再思考-前后端的完全分离
  4. 通过rhel7的kvm虚拟机实现3节点Postgres-XL(包括gtm standby)
  5. 如何安装php5.5,源码安装php5.5
  6. Android 即时通讯开发小结(一)
  7. kubernetes 磁盘、PV、PVC
  8. IT运维管理必备工具大全,看完还敢称自己是高手吗?
  9. import package怎么用
  10. DBCP数据库连接池的使用
  11. HDU 2089:不要62(数位DP)
  12. CactiEZ V10.1 中文版 Cacti中文 安装教程cactiezv10.iso
  13. POI根据模板导出word文件,以及word转PDF,PDF转图片再插入PDF中(防止PDF被修改)
  14. 乳腺数据DDSM标注overlay文件python处理
  15. Navigation Controller 的常用操作
  16. 第四周.直播.03.论文带读+GAT
  17. 微信小程序实现一键长图并保存图片到相册
  18. 抖音壁纸小程序怎么做?手把手教你开通流量主拥有自己的壁纸小程序
  19. 在声音制作中的几个压缩器使用问题,你知道几个呢?
  20. 基于少量样本的快速学习Few-shot learning

热门文章

  1. 多家电商平台有大量三有保护动物,被指纵容犯罪
  2. ‘A’ is an inaccessible base of ‘B’解决方案
  3. 无法打开“Sourcetree”,因为Apple无法检查其是否包含恶意软件。
  4. 半小时漫画预防常见病
  5. kprobe分析内核kworker占用CPU 100%问题总结
  6. Could not load file or assembly 'xxx' or one of its dependencies.
  7. MEPG,DAT转rmvb最好的工具 Easy RealMedia Producer应用要领
  8. php循环经典用法,php的for循环用法详解
  9. 基于布谷鸟优化算法(CS)在微电网优化中的应用研究(Matlab代码实现)
  10. 达梦两个表模糊查询_TableStore:爬虫数据存储和查询利器