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进程与上游服务器之间维护空闲连接,减少建立连接的开销。
相关推荐
峥嵘life3 分钟前
Android16 【GSI】CtsMediaCodecTestCases等一些列Media测试存在Failed项
android·linux·运维·服务器·学习
达子6664 分钟前
Ubuntu的Gparted 无法扩展内存 报错umount: /sdb1: target is busy
linux·运维·ubuntu
lisanmengmeng5 分钟前
cephadm 17.2.5安装部署 (二)
linux·运维·服务器·ceph
RisunJan10 分钟前
Linux命令-lp(打印文件或修改排队的打印任务)
linux·运维·服务器
未来之窗软件服务11 分钟前
工作自动化(1)用户引导自动化教程开发——仙盟创梦IDE
运维·ide·自动化·仙盟创梦ide·东方仙盟
hopsky17 分钟前
限制 Docker Desktop 的资源使用
运维·docker·容器
馨谙18 分钟前
Ansible Playbook 完全指南:从入门到实践
运维·ansible
Suchadar21 分钟前
Docker搭建Web测试靶场
运维·docker·容器
Yana.nice26 分钟前
chrony中“prefer”指定首选服务器
运维·服务器
GAOJ_K26 分钟前
弧形导轨与直线导轨:曲线运动与直线运动
运维·人工智能·科技·机器人·自动化·制造