nginx 负载均衡策略
1. 轮询 轮询方式是nginx负载均衡的默认策略,根据每个server的权重值来轮流发送请求,例如: upstream backend { server backend1.example.com; server backend2.example.com; } 这种情况是每个server都使用相同的权重,默认值为1 可以手动设定权重,例如 upstream backend { server backend1.example.com weight=5; server backend2.example.com; } 2. 最少连接数 把请求发送给激活连接数最少的那台服务器 设置方式 upstream backend { least_conn; server backend1.example.com; server backend2.example.com; } 3. 最少延时 把请求发送给连接延时最小的那台服务器 延时的计算方式有两种: (1)header - 从server接收到第一个byte的时间 (2)last_byte - 从server接收到全部响应的时间 设置方式 upstream backend { least_time header; server backend1.example.com; server backend2.example.com; } 4. ip hash 根据用户IP计算出一个hash值,并记录下来,以后相同hash值的请求都发送到同一个server,同一个用户的请求始终使用同一台服务器,不用担心跨服务器时的session问题 设置方式 upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; } 5. 通用hash 对用户指定的key进行hash计算,可以指定文本、变量或者组合 设置方式 upstream backend { hash $request_uri consistent; server backend1.example.com; server backend2.example.com; }