Nginx Upstream了解一下

如果你的网站使用Nginx,一定很熟悉nginx配置吧,其中最常修改的莫过于 location,但是还有个非常重要的模块就是 upstream,今天就根据自己配置的经验及整理的资料做一总结。

Nginx 的 upstream 模块是负载均衡的核心组件,用于定义和管理后端服务器集群,实现请求分发、故障转移和高可用性。以下从核心功能、配置策略、高级特性及实际应用场景展开详解:

1 核心功能与基础配置

nginx.conf 配置文件中,server 模块通过 proxy_pass将特定的请求负载均衡到不同服务器上,简单配置及示意图如下。

upstream backend {
  # 负载均衡策略
  least_conn;
  # 主服务器配置
  server 192.168.1.101 weight=3 max_fails=2 fail_timeout=30s max_conns=200;
  server 192.168.1.102 weight=2 slow_start=60s;
  # ...其他配置
}

server {
  listen 80;
  location / {
    proxy_pass http://backend;
    proxy_set_header Host $host;
  }
}

NTlrczjv_121212.png

1.1 定义服务器集群

upstream 块用于声明一组后端服务器(即上游服务器),支持域名、IP、端口及UNIX域套接字。

示例

http {
  upstream backend {
    server backend1.example.com:8080 weight=3;
    server 192.168.1.102 max_fails=2 fail_timeout=30s;
    server unix:/tmp/backend.sock backup;
  }
}
  • weight:权重控制请求分配比例(如权重3:2)。
  • backup:标记为备用服务器,主节点失效时启用。
  • max_failsfail_timeout:定义健康检查阈值(如30秒内失败2次则标记为不可用)。

1.2 负载均衡策略

Nginx 支持多种负载均衡策略,其配置灵活且适用于不同场景。以下是主流策略及其配置方法:

1.2.1 轮询(Round Robin)
  • 原理:按请求顺序依次分发到后端服务器,默认策略。
  • 适用场景:服务器性能相近,无状态服务(如静态资源分发)。
upstream backend {
  server 192.168.1.101;
  server 192.168.1.102;
}
1.2.2 加权轮询(Weighted Round Robin)
  • 原理:根据权重分配请求,权重越高分配的请求越多。
  • 适用场景:服务器性能不均(如高配置机器权重设为3,低配设为1)。
upstream backend {
  server 192.168.1.101 weight=3;  # 处理约60%的请求
  server 192.168.1.102 weight=2;  # 处理约40%的请求
}
1.2.3 IP哈希(IP Hash)
  • 原理:根据客户端IP的哈希值固定分配到同一服务器。
  • 适用场景:需保持会话一致性的场景(如登录状态、购物车)。
upstream backend {
  ip_hash;
  server 192.168.1.101;
  server 192.168.1.102;
}
1.2.4 最少连接数(Least Connections
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

村头的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值