Nginx负载均衡策略主要包括以下几种:

  1. 轮询(Round Robin)

    • 说明:默认策略,按顺序将请求分配到后端服务器。

    • 案例

      upstream backend {
          server 192.168.1.101;
          server 192.168.1.102;
      }
  2. 加权轮询(Weighted Round Robin)

    • 说明:根据服务器权重分配请求,权重越高分配的请求越多。

    • 案例

      upstream backend {
          server 192.168.1.101 weight=3;
          server 192.168.1.102 weight=1;
      }
  3. IP哈希(IP Hash)

    • 说明:根据客户端IP地址的哈希值分配请求,确保同一客户端始终访问同一服务器。

    • 案例

      upstream backend {
          ip_hash;
          server 192.168.1.101;
          server 192.168.1.102;
      }
  4. 最少连接(Least Connections)

    • 说明:将请求分配到当前连接数最少的服务器。

    • 案例

      upstream backend {
          least_conn;
          server 192.168.1.101;
          server 192.168.1.102;
      }
  5. 基于响应时间的负载均衡(Least Time)

    • 说明:将请求分配到响应时间最短的服务器。

    • 案例

      upstream backend {
          least_time header;
          server 192.168.1.101;
          server 192.168.1.102;
      }
  6. 随机负载均衡(Random)

    • 说明:随机选择服务器分配请求。

    • 案例

      upstream backend {
          random;
          server 192.168.1.101;
          server 192.168.1.102;
      }
  7. 基于URI的负载均衡(URI Hash)

    • 说明:根据请求URI的哈希值分配请求,确保相同URI的请求始终访问同一服务器。

    • 案例

      upstream backend {
          hash $request_uri consistent;
          server 192.168.1.101;
          server 192.168.1.102;
      }
  8. 基于Cookie的负载均衡(Sticky Cookie)

    • 说明:使用Cookie将客户端绑定到特定服务器。

    • 案例

      upstream backend {
          sticky cookie srv_id expires=1h domain=.example.com path=/;
          server 192.168.1.101;
          server 192.168.1.102;
      }

这些策略可以根据实际需求进行组合和调整,以实现最优的负载均衡效果。

本篇文章内容来源于:Nginx负载均衡策略详细说明以及案例