0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

聊聊Nginx作为负载均衡器它支持的算法都有哪些?

阿铭linux 来源:阿铭linux 2023-02-14 17:50 次阅读

前言

Nginx作为一款最流行WEB服务器软件,同时也是一款反向代理和负载均衡软件。毫不夸张地说,Nginx在负载均衡领域绝对是老大地位,这得益于它的高并发和稳定性。而且在配置使用上也是非常简单,维护也特别容易。那么本篇文章就来聊聊Nginx作为负载均衡器,它支持的算法都有哪些?

Nginx支持的算法汇总

Nginx并不像LVS那样支持多达10种负载均衡算法,它默认支持4种算法,另外还可以通过自定义三方模块来支持更多的三方算法,下面我只列出来两种常见的。

算法 说明
轮询 默认的算法,如果配置中不指定就走这个算法
Weight 带权重的轮询算法,权重越高被请求的次数就越多
ip_hash 根据客户端IP来选择后端服务器
least_conn 会将请求优先发送给连接数最少的后端服务器
fair 三方模块,按后端服务器响应时间来决策
url_hash 三方模块,按访问url的hash结果来分配请求

轮询

按请求发来的顺序逐一分配到不同的后端服务器上,最简单最弱智的负载均衡算法,看似公平,其实并不好,比如后端某台服务器负载很高了,那么还是会雷打不动地被动接收请求。

配置示例如下:

upstreamaminglinux{
    server 192.168.10.11;
    server 192.168.10.12;
}

Weight

相比较默认的轮询算法,这个Weight多加了一层权重的概念。就是说,我们可以人为地给后端服务器定义权重。这样确实可以保证让性能更好的服务器接收更多的请求,正所谓“能者多劳”! 配置示例如下:

upstreamaminglinux{
    server 192.168.10.11 weight=1;
    server 192.168.10.12 weight=3;
}
说明:这个weight定义的值范围为1-255,值越大,那么给到的请求就越多。

Ip_hash

当使用了负载均衡后,那么就意味着,同一个客户端很有可能第一次访问的是A机器,而第二次访问的是B机器,那么这样就会导致,访问A机器时登录了,而访问B机器时是非登录状态。而这个算法主要用来解决此类问题。 该算法下,每个请求按访问IP的哈希结果分配后端服务器,使来自同一个IP的访客固定访问一台后端服务器,这样就解决了上面提到的问题,也就是说所谓的“session共享问题”。

配置示例如下:

upstreamaminglinux{
    ip_hash;
server192.168.10.11;
server192.168.10.12;
}

Least_conn

从字面意思上也可以理解,就是将请求优先分配给后端服务器里连接数最少的服务器。不过,这个算法是和weight配合使用的,它有一个公式:conns/weight,也就是说Nginx会计算连接数除以权重,最终拿这个值进行比对,值越小会优先分配到请求。 配置示例如下:

upstreamaminglinux{
least_con
server192.168.10.11 weight=10;
server192.168.10.12 weight=5;
}

Fair

这是一个三方的算法,需要在编译Nginx时增加nginx-upstream-fair-master模块支持。该算法可以根据后端服务器的响应时间的大小来决定将请求发送给谁,响应时间越快,那么就优先拿到请求。 配置示例如下:

upstreamaminglinux{
fair;
server192.168.10.11;
server192.168.10.12;
}

Url_hash

三方的算法,需要在编译Nginx时增加ngx_http_upstream_hash_module模块支持。该算法按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器。注意:使用该算法后不能带weight。 配置示例如下:

upstreamaminglinux{
hash$request_uri;
server192.168.10.11;
server192.168.10.12;
}





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • LVS
    LVS
    +关注

    关注

    0

    文章

    35

    浏览量

    9862
  • Hash算法
    +关注

    关注

    0

    文章

    43

    浏览量

    7362
  • nginx
    +关注

    关注

    0

    文章

    136

    浏览量

    11993

原文标题:Nginx的负载均衡算法你知道都有哪些吗

文章出处:【微信号:aming_linux,微信公众号:阿铭linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    负载均衡器的诞生和工作机制

    今天我们来深度揭秘一下负载均衡器 LVS 的秘密,相信大家看了你管这破玩意儿叫负载均衡?这篇文章后,还是有不少疑问,比如 LVS 看起来只有类似路由器的转发功能,为啥说它是四层(传输层
    的头像 发表于 01-04 12:26 460次阅读
    <b class='flag-5'>负载</b><b class='flag-5'>均衡器</b>的诞生和工作机制

    机械调控和数控均衡器

    机械调控和数控均衡器         &
    发表于 09-17 09:04

    音乐均衡器

    求助~~~~怎样用labview设计出一个音乐均衡器!!!
    发表于 04-30 17:30

    基于labview的音乐均衡器的设计

    急急急,哪位大神有音乐均衡器的设计啊,虚拟仪器的大作业,下周就要交了,还要写PPT上去讲。。。。
    发表于 11-01 13:52

    如何去实现OFDM系统中的均衡器算法

    什么是时变信道中OFDM系统均衡器均衡器算法的FPGA实现
    发表于 04-29 07:29

    如何提高自适应均衡器的性能?

    自适应电缆均衡器是什么?自适应均衡器设计面临哪些技术挑战?如何提高自适应均衡器的性能?
    发表于 05-18 06:04

    均衡器的基本原理是什么?

    均衡器的基本原理是什么?
    发表于 05-20 06:45

    均衡器电路(五段)

    均衡器电路(五段)
    发表于 01-19 10:30 1.3w次阅读
    <b class='flag-5'>均衡器</b>电路(五段)

    均衡器的使用误区

    均衡器的使用误区 均衡器的全称是房间均衡器。在音响系统中有广泛的应用,但大多数场合,它并没有发挥应有的作用。现举例说明
    发表于 12-12 10:10 1808次阅读

    什么是均衡器

    什么是均衡器 均衡器简介 均衡器是一种可以分别调节各种频率成分电信号放大量的电子设备,通过对各种不同频率的电信号的调节来补偿扬声器和
    发表于 02-05 17:52 2852次阅读

    功率均衡器,功率均衡器原理是什么?

    功率均衡器,功率均衡器原理是什么? 熔融拉锥型光纤耦合器和PLC(平面光波导)光功率分配器近年来已获得长足发展。但无论光纤型或波导型器件现
    发表于 04-02 16:28 2137次阅读

    基于Harr小波的均衡器结构

    在分析传统线性均衡器的基础上, 提出了一种基于Harr 小波的均衡器结构, 并用一组小波来表示均衡器. 之后, 给出了自适应算法, 并对算法
    发表于 11-25 13:40 26次下载
    基于Harr小波的<b class='flag-5'>均衡器</b>结构

    f5负载均衡器功能介绍及使用说明(配置)

    经常听到技术提到负载均衡这个词,还有F5、F5负载均衡等之类的,从网上找了点资料做个知识普及,希望能帮到想了解这方面知识的朋友。负载
    发表于 12-29 11:25 3.5w次阅读
    f5<b class='flag-5'>负载</b><b class='flag-5'>均衡器</b>功能介绍及使用说明(配置)

    电脑均衡器软件哪个好_电脑均衡器怎么设置才好听

    本文首先介绍了四款电脑均衡器软件,分别是电脑均衡器V2.0 绿色版、均衡器学习软件 V1.0 绿色版、电脑均衡器 2.0 官方最新版以及电脑均衡器
    的头像 发表于 05-24 10:41 7.9w次阅读
    电脑<b class='flag-5'>均衡器</b>软件哪个好_电脑<b class='flag-5'>均衡器</b>怎么设置才好听

    如何使用Nginx作为应用程序的负载均衡器

    Nginx因其高性能和可扩展性而广受欢迎。它是排名第一的开源Web 服务器。在本教程中,我们将学习如何使用Nginx作为应用程序的负载均衡器
    的头像 发表于 03-23 14:52 867次阅读