基本配置

upstream backend {
    server backend1.example.com weight=5;
    server backend2.example.com;
    server backend3.example.com;
}

基本配置说明

  • backend1.example.com weight=5:设置后端服务器的权重为 5
  • backend2.example.com:设置后端服务器的权重为 1(默认)
  • backend3.example.com:设置后端服务器的权重为 1(默认)

基本配置原理: 服务器权重用于控制后端服务器接收请求的比例,权重越高,接收的请求越多。

权重说明

  • 默认权重为 1
  • 权重越高,分配的请求越多
  • 权重比例为 5:1:1

权重说明原理: 服务器权重用于控制后端服务器接收请求的比例,权重越高,接收的请求越多。默认权重为 1,可以设置为任意正整数。

权重计算

权重计算公式:

后端服务器接收请求的比例 = 后端服务器的权重 / 所有后端服务器的权重之和

权重计算示例

upstream backend {
    server backend1.example.com weight=5;
    server backend2.example.com;
    server backend3.example.com;
}

权重计算说明

  • 所有后端服务器的权重之和 = 5 + 1 + 1 = 7
  • backend1.example.com 接收请求的比例 = 5 / 7 ≈ 71.4%
  • backend2.example.com 接收请求的比例 = 1 / 7 ≈ 14.3%
  • backend3.example.com 接收请求的比例 = 1 / 7 ≈ 14.3%

示例

upstream backend {
    server backend1.example.com weight=3;
    server backend2.example.com weight=2;
    server backend3.example.com weight=1;
}

示例说明

  • backend1.example.com weight=3:设置后端服务器的权重为 3
  • backend2.example.com weight=2:设置后端服务器的权重为 2
  • backend3.example.com weight=1:设置后端服务器的权重为 1

示例原理

  • 所有后端服务器的权重之和 = 3 + 2 + 1 = 6
  • backend1.example.com 接收请求的比例 = 3 / 6 = 50%
  • backend2.example.com 接收请求的比例 = 2 / 6 ≈ 33.3%
  • backend3.example.com 接收请求的比例 = 1 / 6 ≈ 16.7%

权重适用场景

权重适用于以下场景:

  1. 后端服务器性能不同:如果后端服务器性能不同,可以根据性能设置权重
  2. 后端服务器负载不同:如果后端服务器负载不同,可以根据负载设置权重
  3. 后端服务器地域不同:如果后端服务器地域不同,可以根据地域设置权重

注意事项

  • 权重仅影响轮询和最少连接方法
  • 权重不影响 IP 哈希和哈希方法
  • 权重可以动态调整
  • 权重建议设置为正整数