当前位置: 首页 > article >正文

nginx做负载均衡的策略有哪些和模块

文章目录

  • 策略
  • 模块


策略

  • 轮询:轮询是Nginx默认的负载均衡策略,每个请求会按时间顺序分配到不同的后端服务器。这种方式适用于服务器配置相当且无状态的服务场景。
  • 加权轮询:在轮询的基础上,通过设置权重来调整不同服务器处理请求的几率。权重越高,被分配到的请求越多。这种策略适合服务器硬件配置差别较大的情况。
  • IP哈希:依据客户端IP地址的哈希结果来分配请求,确保相同IP的请求始终发送到同一台服务器,适用于有状态服务,如session管理。
  • 最少连接:将请求转发给当前连接数最少的服务器,适用于请求处理时间长短不一的情况。
  • 响应时间:这是一种第三方策略,根据服务器的响应时间来分配请求,响应时间短的服务器优先获得新的请求。
  • URL哈希:同样是第三方策略,基于请求的URL进行哈希,使同一个资源请求总是定向到同一台后端服务器,提高缓存命中率。

模块

  • upstream模块

    • 定义服务器组:upstream模块允许管理员定义一组或多组后端服务器,每个服务器组可以包含多个服务器节点。
    • 代理方式多样:该模块支持多种代理方式,包括proxy_pass、fastcgi_pass、memcached_pass等,以适应不同的应用场景。
    • 调度算法丰富:upstream模块提供了多种调度算法,如轮询(Round Robin)、加权轮询(Weighted Round Robin)、IP哈希(IP Hash)等,以满足不同需求的场景。
    • 健康检查机制:通过max_fails和fail_timeout参数,upstream模块能够实现对后端服务器的健康检查,确保请求仅被发送到健康的服务器上。
    • 备用服务器设置:该模块允许配置备用服务器,在主服务器不可用时,请求会被自动转发到备用服务器,提高系统的可用性。
  • http_proxy_module模块

    • 请求转发:http_proxy_module模块负责将客户端的请求转发到upstream中定义的后端服务器组。
    • URI匹配:通过location指令,http_proxy_module模块可以根据请求的URI进行匹配,并将请求转发到相应的上游服务器池。
    • 请求头设置:该模块允许设置HTTP请求头,如通过proxy_set_header指令设置客户端的真实IP地址等信息。
    • 连接超时设置:http_proxy_module模块提供了proxy_connect_timeout、proxy_send_timeout和proxy_read_timeout等参数,用于控制与后端服务器的连接和数据传输超时时间。
    • 长连接配置:通过keepalive指令,http_proxy_module模块可以在worker进程与上游服务器之间维护空闲连接,减少建立连接的开销。

http://www.kler.cn/news/340024.html

相关文章:

  • 新一轮 Web3 游戏季,Final Glory成捕获全新市场红利的入口
  • 基于卷积神经网络的书法字体识别系统,resnet50,mobilenet模型【pytorch框架+python】
  • 第 21 章 一条记录的多幅面孔——事务的隔离级别与 MVCC
  • C++ static静态
  • 怎么避免在pod产生-派生炸弹(Fork Bomb)? k8s(kubernetes)
  • 使用java操作浏览器的工具selenium-java和webdriver下载地址
  • CMake 教程跟做与翻译 2
  • Sealos Devbox 发布,珍爱生命,远离 CI/CD
  • React生命周期以及Hook
  • 修改Docker的默认存储路径
  • 01_23 种设计模式之《简单工厂模式》
  • (实习日报)广告技术平台实习工作日报 9月29号-10月7号(国庆快乐)
  • vue3+vant4+微信公众号实现图片上传和扫一扫功能
  • 『网络游戏』动态界面制作创建角色UI【02】
  • Dubbo常见的几个八股题
  • 前端基础面试题·第四篇——Vue(其二)
  • 基于H3C环境的实验——OSPF
  • 全面图解Docker架构设计:掌握Docker全链路思维与优化(命令篇)
  • 面试中遇到的关于Transformer模型的问题有哪些?
  • B2B2C商城系统如何优化合作伙伴关系