nginx 负载均衡

nginx 的负载均衡服务所使用的模块是ngx_http_upstream_module
示例配置:
upstream backend {
  server backend1.example.com;
  server backend2.example.com:8080;
  server unix:/tmp/backend3;
}

server {
  location / {
    proxy_pass http://backend;
  }
}
upstream backend 设置一个服务器池(组),backend为池(组)名称,
server 设置后端服务器

upstream参数:
weight:权重
max_fails:尝试连接后端主机失败的次数
fail_timeout:在max_fails定义的失败次数后,距离下次检查的间隔时间
backup:备份节点,所有节点都挂掉后,才会请求备份节点
down:服务器不可用
示例配置:
upstream backend {
  server backend1.example.com weight=5;
  server backend2.example.com:8080 max_fails=3 fail_timeout=5s;
  server unix:/tmp/backend3 down;

  server backup1.example.com:8080 backup;
  server backup2.example.com:8080 backup;
}

server {
  location / {
    proxy_pass http://backend;
  }
}

nginx负载均衡方法:
nginx提供了以下三种负载均衡机制、方法:
round-robin:请求以循环、轮转的方式分发到应用服务器。
least-connected :下一个请求被分配到拥有最少活动连接数的服务器
ip-hash:使用一个哈希函数,基于客户端ip地址判断下一个请求应该被分发到哪个服务器。
#默认方法为round-robin
round-robin示例配置:
upstream backend {
  server backend1.example.com;
  server backend2.example.com:8080;
  server unix:/tmp/backend3;
}
least-connected示例配置:
upstream backend {
  least_conn;
  server backend1.example.com;
  server backend2.example.com:8080;
  server unix:/tmp/backend3;
}
ip-hash示例配置:
upstream backend {
  ip-hash;
  server backend1.example.com;
  server backend2.example.com:8080;
  server unix:/tmp/backend3;
}

posted @ 2018-03-09 21:32  erdancry  阅读(170)  评论(0编辑  收藏  举报