轮询

这里的轮询并不是每个请求轮流分配到不同的后端服务器,与ip_hash类似,但是按照url的hash结果来分配请求,使得每个url丁香岛同一个后端服务器,主要应用于后端服务器为缓存时的场景
如果后端服务器down掉,将自动删除

  1. # 一个一次,最均衡
  2. upstrem backserver{
  3. server 127.0.0.1:8080;
  4. server 127.0.0.1:9090;
  5. }

若要使用轮询,要尽量保证两个机器性能配置几乎一致

权重

每个请求按一定比例发到不同的后端服务器,weight值越大访问的比例越大,用于后端服务器性能不均的情况

  1. upstrem backserver{
  2. server 127.0.0.14:8080 weight=5;
  3. server 127.0.0.15:9090 weight=2;
  4. }

ip_hash

ip_hash也叫ip绑定,每个请求按访问ip的hash值分配,这样每个访问客户端会固定访问一个后端服务器,可以解决会话session丢失的问题

  1. hash("124.207.55.82")%2 = 0,1
  2. upstrem backserver{
  3. ip_hash;
  4. server 127.0.0.14:8080 weight=5;
  5. server 127.0.0.15:9090 weight=2;
  6. }

最少连接

web请求会被转发到链接数量最少的服务器上

  1. upstrem backserver{
  2. least_conn
  3. server 127.0.0.14:8080 weight=5;
  4. server 127.0.0.15:9090 weight=2;
  5. }

其他负载均衡参数

backup

在其他服务器不可用时,作为备用服务器
具体场景:
100台服务器更新代码,先更新backup的,再停掉50台更新,这时会有少量请求发送至backup。重启前50,停掉剩下50更新。backup作为暂时的备胎使用

  1. upstrem backserver{
  2. least_conn
  3. server 127.0.0.14:8080 ;
  4. server 127.0.0.15:9090 backup;
  5. }

down

  1. upstrem backserver{
  2. least_conn
  3. server 127.0.0.14:8080 ;
  4. # down表示当前的server是down状态,不参与负载均衡
  5. server 127.0.0.15:9090 down;
  6. }