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进程与上游服务器之间维护空闲连接,减少建立连接的开销。
相关推荐
误入运维泥潭13 分钟前
LVS、Nginx与HAProxy负载均衡技术对比介绍
nginx·lvs·haproxy·keealived
--运维实习生--30 分钟前
自动化运维之ansible
运维·自动化·ansible
专注代码七年44 分钟前
Docker 本地开发环境搭建(MySQL5.7 + Redis7 + Nginx + 达梦8)- Windows11 版 2.0
nginx·docker·容器
laoma-cloud1 小时前
数据库高可用全方案:Keepalived 故障切换 + LVS (DR) 模式 + MariaDB 主主同步实战案例
运维·数据库集群
Hi202402172 小时前
基于阿里云部署 RustDesk 自托管服务器
运维·服务器·阿里云·云计算·远程控制·远程桌面
豆是浪个2 小时前
Linux(Centos 7.6)命令详解:sar
linux·运维·centos
fie88892 小时前
CentOS下Bind服务的安装与故障排查
linux·运维·centos
少陽君2 小时前
如何使用自签 CA 签发服务器证书与客户端证书
运维·服务器
牛奶咖啡132 小时前
Nginx +Tomcat架构的必要性与应用示例
nginx·tomcat·nginx的静态动态资源配置·root与alias的区别·静态及负载均衡动态资源配置
東雪蓮☆3 小时前
Linux 网络流量监控 Shell 脚本详解(支持邮件告警)
linux·运维·服务器