nginx负载均衡算法

nginx负载均衡算法转自https://www.cnblogs.com/kakatadage/p/9994228.html配置方式NGINX配置负载均衡主要是在nginx.conf文件中里upstream模块1、u

大家好,又见面了,我是你们的朋友全栈君。

转自https://www.cnblogs.com/kakatadage/p/9994228.html

配置方式

NGINX配置负载均衡主要是在nginx.conf文件中里upstream模块

1、upstream模块应放于nginx.conf配置的http{}标签内
2、upstream模块默认算法是wrr (权重轮询 weighted round-robin)

分配算法

Nginx的upstream支持5种分配方式,下面将会详细介绍,其中前三种为Nginx原生支持的分配方式,后两种为第三方支持的分配方式。

1、轮询 

轮询是upstream的默认分配方式,即每个请求按照时间顺序轮流分配到不同的后端服务器,如果某个后端服务器down掉后,能自动剔除。

upstream backend {
    server 192.168.1.101:8888;
    server 192.168.1.102:8888;
    server 192.168.1.103:8888;
}

2、weight(权重比) 

轮询的加强版,即可以指定轮询比率,weight和访问几率成正比,主要应用于后端服务器异质的场景下。

upstream backend {
    server 192.168.1.101 weight=1;
    server 192.168.1.102 weight=2;
    server 192.168.1.103 weight=3;
}

3、ip_hash 

每个请求按照访问ip(即Nginx的前置服务器或者客户端IP)的hash结果分配,这样每个访客会固定访问一个后端服务器,可以解决session一致问题。

upstream backend {
    ip_hash;
    server 192.168.1.101:7777;
    server 192.168.1.102:8888;
    server 192.168.1.103:9999;
}

 

注意:
1、当负载调度算法为ip_hash时,后端服务器在负载均衡调度中的状态不能是weight和backup。
2、导致负载不均衡。

4、fair 

fair顾名思义,公平地按照后端服务器的响应时间(rt)来分配请求,响应时间短即rt小的后端服务器优先分配请求。如果需要使用这种调度算法,必须下载Nginx的upstr_fair模块。

upstream backend {
    server 192.168.1.101;
    server 192.168.1.102;
    server 192.168.1.103;
    fair;
}

5、url_hash,目前用consistent_hash替代url_hash

与ip_hash类似,但是按照访问url的hash结果来分配请求,使得每个url定向到同一个后端服务器,主要应用于后端服务器为缓存时的场景下。

复制代码
复制代码
upstream backend {
    server 192.168.1.101;
    server 192.168.1.102;
    server 192.168.1.103;
    hash $request_uri;
    hash_method crc32;
}
复制代码
复制代码

其中,hash_method为使用的hash算法,需要注意的是:此时,server语句中不能加weight等参数。

提示:url_hash用途cache服务业务,memcached,squid,varnish。特点:每个rs都是不同的。

二、设备状态

从上面实例不难看出upstream中server指令语法如下:server address [parameters]
参数说明:
server:关键字,必选。
address:主机名、域名、ip或unix socket,也可以指定端口号,必选。
parameters:可选参数,可选参数如下:
    1.down:表示当前server已停用
    2.backup:表示当前server是备用服务器,只有其它非backup后端服务器都挂掉了或者很忙才会分配到请求。
    3.weight:表示当前server负载权重,权重越大被请求几率越大。默认是1.
    4.max_fails和fail_timeout一般会关联使用,如果某台server在fail_timeout时间内出现了max_fails次连接失败,那么Nginx会认为其已经挂掉了,从而在fail_timeout时间内不再去请求它,fail_timeout默认是10s,max_fails默认是1,即默认情况是只要发生错误就认为服务器挂掉了,如果将max_fails设置为0,则表示取消这项检查。

举例说明如下:

upstream backend {
    server    backend1.example.com weight=5;
    server    127.0.0.1:8080 max_fails=3 fail_timeout=30s;
    server    unix:/tmp/backend3;           
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155473.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月3日 下午9:16
下一篇 2022年7月3日 下午9:16


相关推荐

  • Mac连接不上无线网络的解决方法「建议收藏」

    Mac连接不上无线网络的解决方法「建议收藏」Mac电脑突然连不上WiFi了怎么办?小编使用了这么久的Mac,这种情况也是出现过很多次的,这个问题如果不是因为苹果无线网硬件出现了故障,基本都能通过排除法来解决问题,主要解决思路是从路由器过热造成网络阻塞,IP地址冲突、系统bug导致等这些方面入手,下面小编给大家介绍一下详细的解决方法,需要的小伙伴看过来!第一步、重启Mac无线网卡点击桌面顶部无线网络图标,下拉菜单中点击“关闭Wi-Fi”,然后再使用同样方法,下拉菜当中点击“Wi-Fi:打开”,重新启动无线网卡。第二步、重启路由器过长时间开着路

    2022年6月21日
    61
  • vue-router 基本使用「建议收藏」

    vue-router 基本使用「建议收藏」vue-router基本使用  路由,其实就是指向的意思,当我点击页面上的home按钮时,页面中就要显示home的内容,如果点击页面上的about按钮,页面中就要显示about的内容。Home按钮=>home内容,about按钮=>about内容,也可以说是一种映射.所以在页面上有两个部分,一个是点击部分,一个是点击之后,显示内容的部分。  点击之后,…

    2022年7月11日
    20
  • 单点登录sso原理及代码实现

    单点登录sso原理及代码实现什么是单点登录一个账户在多个系统上实现单一用户的登录为什么用单点登录单点登录可以做到在不记录用户密码的情况下 实现不同系统之间的资源共享 自动登录不安全 单点登录 一处登录 处处都可用 不用做多余的登录操作引用一个很经典的案例比如现在有 OA 系统 门户系统 人力资源管理系统 档案管理系统 生产管理系统 xx 系统等 这么多个系统在一个公司里面 如果一个用户需要使用这么多个系统

    2026年3月17日
    2
  • awvs扫描器原理_条形码扫描器现在无法使用

    awvs扫描器原理_条形码扫描器现在无法使用AWVSAWVS(WebVulnerabilityScanner)是一个自动化的Web应用程序安全测试工具,它可以扫描任何可通过Web浏览器访问的和遵循HTTP/HTTPS规则的Web站点和Web应用程序。适用于任何中小型和大型企业的内联网、外延网和面向客户、雇员、厂商和其它人员的Web网站。WVS可以通过检查SQL注入攻击漏洞、XSS跨站脚本攻击漏洞等漏洞来审核Web应用程序的安全性。AWVS功能介绍WebScanner:核心功能,web安全漏洞扫描(深度,宽度,限制20个)Site

    2026年2月14日
    4
  • Activity跳转到指定Fragment实例

    Activity跳转到指定Fragment实例最近做的一个项目,突然出现了这个问题,Activity中有四个fragment,分别是first,two,three,four,默认显示的是fragmenta。在开发过程中,first中跳转到另一个Activity,将这个外部Activity命名为B吧…我需要从first中跳转到B中,完成一些设置,然后再从B中的返回按钮回到three,three中也有一个viewpa

    2022年5月20日
    58
  • 谈磁盘列阵 raid0 raid1 raid3 raid5 raid10简介及区别

    谈磁盘列阵 raid0 raid1 raid3 raid5 raid10简介及区别转自:https://www.fengjunzi.com/blog-25108.htmlRAID简介随着服务器在企业的应用越来越广泛,数据安全,数据存储,数据恢复,存储速度等方面对企业用户来说越来越重要,而RAID卡在此过程中起着至关重要的作用,RAID卡本身的性能和特点往往会被一些用户忽视,而服务器厂商为节约成本也会搭配一些比较初级甚至一些小品牌的RAID卡产品,在使用过程中出现问题时用…

    2022年7月15日
    21

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号